Christian Bale easily, He's the only actor to date get both sides of the character down right.

Keaton was an all-right Batman but a terrible Bruce Wayne, Kilmer was a good Bruce Wayne but not an especially good Batman, Clooney was terrible as both and Affleck wasn't particularly great at either.