How do you beat sephiroth on kingdom hearts 2?

The easiest way to beat him is to have the proper abilities, Keyblade, and items equipped. Also, having Sora at a decent level helps. Which is about 45 on Beginner mode, 55 on Normal, and 60 - 65 on Professional.

The proper abilities vary based on your playing style. As a personal preference, I have the following equipped:

Keyblade: Oblivion

Abilities: High Jump LV. 2 (1 minimum), Quick Run LV. 1, Aerial Dodge LV. 2 (1 minimum), Retaliating Slash, Leaf Bracer (And any other abilities that increase the number of available combos & speed of MP Restoration)

Items: High Potion x4, Ether x2

Avoid using magic as it will no effect. Conserve it for healing. Keep Cure, High Potion, and Ether in your shortcut menu. Use Retaliating Slash (hit the "square" button right before he reappears after knocking you into the air.

When he performs his huge sword combos on the ground, avoid them by jumping into the air and pressing the Jump button again at the height of your jump. Avoid his flame tornadoes by running the opposite direction and using Quick Run when they begin to draw you in.

Even when employing these tactics, Sephiroth is still an extremely dangerous foe and will take some time to defeat. Good luck!

UPDATE (Computergeek101234): Contrary to what people say, you can beat him at level 45 as I have done it. When he jumps into the air to perform his attack that leaves you with 1 HP, he will stop if you hit him before he says "the heartless angel".