Tim Howard made several saves, including a penalty, during the first 45 minutes before the visitors improved after the break.
The Belgian striker took the penalty himself but was denied by Howard.
Howard denied the striker again shortly afterwards, tipping a volley wide before diving at the feet of Andreas Weimann, who had broken Everton's offside trap.
Benteke and Fabian Delph both went close for Villa after the break, but it was Everton who went in front thanks to their own Belgian forward.
© Getty Images
Osman then turned from provider to scorer, firing past Guzan after receiving Gareth Barry's pull-back.
There was still time for half-chances courtesy of Baines and substitute Gerard Deulofeu but the game was already safe for Everton.