Villa scores derby win over West Brom
A Chris Brunt stunner and a Fabian Delph own goal inside the first nine minutes got the Baggies off to a flyer at Villa Park but the hosts replied quickly through Andreas Weimann, Leandro Bacuna and Delph.
Youssouf Mulumbu made it 3-3 at half-time but Benteke secured only Villa's third Barclays Premier League home win of the season from the spot after the striker himself was fouled.
The result left new West Brom manager Pepe Mel still waiting for his first victory in the job.
The £10million England midfielder's sixth goal in as many games secured all three points - the Black Cats' first in the league in six attempts at the Stadium of Light - and in the process eased them out of the relegation zone for the first time since August.
Johnson struck from close range with 17 minutes gone after Potters keeper Asmir Begovic had spilled Fabio Borini's effort, to the delight of the bulk of a crowd of 34,745.
Stoke's hopes of mounting a fightback were dealt a fatal blow within eight minutes of the restart when midfielder Steven Nzonzi was sent off for a second bookable offense, although Ryan Shawcross looped a header against the bar with six minutes remaining.