However, Coleman struck with 17 minutes remaining and Barry nodded home from close range before Kevin Mirallas completed the scoring.
The South African found Osman who curled a composed effort inside Maarten Stekelenburg's post from just inside the penalty area.
Gerard Deulofeu, who later limped off with a hamstring injury, was providing Everton's attacking threat down the right but he lacked an end product.
Romelu Lukaku also struggled to impose himself in the Fulham area, with his best effort an instinctive chest down from Pienaar's corner which Stekelenburg brilliantly tipped around the post.
Osman looked most likely to add to Everton's lead and his dipping volley ballooned back off a defender and dropped just wide.
Despite a succession of corners Everton could have found themselves level at half-time as Sylvain Distin blocked a Giorgos Karagounis shot and Berbatov fired over.
Fulham looked a different side after the break and forced Tim Howard into saves, firstly from Scott Parker and then Steve Sidwell.
Everton's chances became more infrequent and although Oviedo had a goalbound shot headed off the line by Sascha Riether, Fulham were in the ascendancy and deservedly equalised when Barry brought down Kacaniklic and Berbatov stroked home the penalty.
Everton rallied with Pienaar, who looked to be offside, cutting back for Coleman to score.
Barry atoned for his error by heading in from close range after a scramble at a corner and in added time Mirallas ensured victory.