For a long spell in the second half, it seemed the hosts had squandered the lead given to them by Leon Osman on his 300th Premier League appearance when Dimitar Berbatov scored from the spot.
However, Coleman struck with 17 minutes remaining, although there was a suggestion of offside in the build-up, and Barry nodded home from close range before Kevin Mirallas made it 4-1 in added time.
That brought Fulham’s second-half revival to a shuddering halt and extended their losing run at this ground to a staggering 21 games.
Aside from the flakiness of the performance, Everton also lost on-loan Barcelona prodigy Gerard Deulofeu to a hamstring injury which could see him miss the festive programme.
A nondescript opening was eventually brought to life by a goal of some quality both in its creation and execution.
It was exactly the type of goal which would have delighted manager Roberto Martinez.
Centre-back Sylvain Distin picked up the ball on the halfway line and played it short to Bryan Oviedo, who slipped it inside for Steven Pienaar.
The South African instantly shuffled the ball across to Osman, who having controlled it with his right foot transferred it to his left before curling a composed effort inside Maarten Stekelenburg’s post from just inside the penalty area.
It should have promoted a rush of goals as Everton were well on top at that point and although they continued to hold the advantage they could not press it home.
Deulofeu, also restored to the starting line-up after an impressive first league start at Goodison a fortnight ago, was providing Everton’s greatest attacking threat down the right but he lacked an end product.
On-loan striker 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.
After Coleman had seen a low shot denied by Stekelenburg, Lukaku picked the wrong option in trying to square to Pienaar as he bore down on goal.
Osman looked most likely to add to Everton’s lead and his dipping volley after Ross Barkley’s shot had ballooned back off a defender dropped just wide.
The difference in the sides in the first half was typified by their respective managers in one single instance.
Meulensteen, in his technical area, took a pragmatic approach in opting to kill a long clearance with one touch into the dugout – the ball bouncing to Martinez, who toyed with it before flicking it back into play.
But while Martinez has instilled that creativity into his players they still sometimes lack a killer instinct, and despite a succession of corners they could have found themselves level at half-time as Sylvain Distin blocked a Giorgos Karagounis and Berbatov fired over with the last kick of the half.
Fulham looked a different side after the break and twice early on forced Tim Howard into saves, firstly from Scott Parker and then Steve Sidwell.
Former Liverpool reserve team player Alex Kacaniklic will not enjoy the re-runs of this game as he managed to fire over the rebound from the latter when faced with an open goal.
Everton’s chances became more infrequent and although Oveido had a goalbound shot virtually headed off the line by Sascha Riether, Fulham were in the ascendancy and deservedly equalised when Barry was adjudged to have brought down Kacaniklic and Berbatov stroked home.
The Toffees’ chance seemed to have gone but they are unbeaten at Goodison in 2013 and rallied with Pienaar, who looked to be offside, cutting back for Coleman to score.
Barry atoned for his error in his own penalty area by heading in from close range after a scramble at a corner and in added time Mirallas ensured the scoreline flattered Everton.