Vastly improved from last week's FA Cup defeat by Wigan Athletic, Everton were unfortunate to have a Kevin Mirallas effort ruled offside before Osman powered the hosts into the lead on 32 minutes.
Steven Pienaar was sent off on 61 minutes and City were then denied a clear penalty before substitute Nikica Jelavic made certain of the points in the third minute of stoppage-time to make it nine wins in 12 games against the visitors.
Marouane Fellaini was booed by Everton fans after being substituted against Wigan and he showed an early measure of his intent to make amends by picking up a seventh minute yellow card for a full-blooded challenge on James Milner.
Everton thought they had taken the lead on 13 minutes when Mirallas lashed home, but he was flagged offside, with replays showing the Belgium international was level with Aleksandar Kolarov.
City started to come into the game, with Everton's stand-in keeper Jan Mucha saving low from Carlos Tevez and twice from Edin Dzeko before Pienaar picked up his first caution for a late challenge on Gareth Barry.
There was no contention about Everton's goal on 32 minutes as Seamus Coleman laid the ball back for Osman and the midfielder's left-footed shot swerved majestically away from Joe Hart and into the net.
The Toffees ended the half positively with Victor Anichebe firing over and then Mirallas saw his header deflected over by Kolo Toure following a poor punch from Hart.
The opening stages of the second half offered little goalmouth action but, just past the hour mark, Everton were down to 10 men when Pienaar was shown a second yellow card for a high challenge on Javi Garcia which could easily have brought a straight red card from referee Lee Probert.
Midway through the second half, Mucha proved himself an able deputy for Tim Howard by pushing away Tevez's close-range attempt before reacting smartly to block Milner's follow-up.
Sylvain Distin headed over Leighton Baines' corner as Everton refused to sit back before again being indebted to Mucha, who rushed out quickly to deny Pablo Zabaleta.
With four minutes to go, City should have been awarded a penalty when Tevez's shot was handled by Fellaini, but Probert gave a free-kick despite the Belgian midfielder being two yards inside the box.
In added time, Everton broke clear as Fellaini passed to Jelavic and the Croatian cut inside before seeing his deflected shot loop over Hart to send the Goodison crowd into raptures and leaving City 15 points adrift of leaders Manchester United after their win over Reading.