Premier League: Fulham 1 Everton 3
Naismith and Mirallas were both on target in the second half, while the former's shot led to home goalkeeper David Stockdale inadvertently putting through his own net as Roberto Martinez's men boosted their hopes of securing UEFA Champions League qualification.
The result was harsh on Fulham, who were excellent in the first half and looked to have sealed a deserved point when Ashkan Dejagah cancelled out Stockdale's own goal.
But Mirallas produced a composed finish 11 minutes from time and Naismith added a third to ensure Everton moved within four points of fourth-placed Arsenal with a game in hand.
Felix Magath's men are five points from safety with just six games remaining and will reflect on a game of missed opportunities as their Premier League fate hangs by a thread.
Fulham were the better side in the first half, with Kieran Richardson, Lewis Holtby and youngster Moussa Dembele all testing visiting goalkeeper Tim Howard.
That seemed to matter little when Naismith's powerful effort flicked off William Kvist, struck the unwitting Stockdale and landed in the net just six minutes after the interval.
But Fulham's response was spirited and full of belief, a far cry from their display in last Saturday's 5-0 thrashing against Manchester City, with Dejagah's fourth league goal of the season levelling matters.
John Heitinga saw a late header brilliantly saved and Pajtim Kasami went close as Fulham looked to win it, but Mirallas and Naismith both found the net for Everton late on.
Fulham, who looked to have cause for a penalty appeal when Sylvain Distin appeared to handle in the box, threatened in the 13th minute as Brede Hangeland flicked on Holtby's corner, but Kasami was unable to steer his back-post header on target.
Magath showed faith in 17-year-old striker Dembele by handing him a start and the Frenchman underlined his promise with a perfectly measured throughball for Richardson, whose effort was saved by the legs of Howard.
Stockdale produced a carbon-copy stop to thwart Gerard Deulofeu at the end of a swift Everton counter-attack, while Holtby and Dembele tested Howard with headers as the tempo continued to increase prior to half-time.
Martinez's side moved ahead with 51 minutes on the clock. Leighton Baines' corner eventually found its way to Naismith, on for the injured Ross Barkley, and his shot set in motion a chain of events that ended with Stockdale deflecting the ball into his own net.
The former Hull City loanee produced a stunning save to deny Romelu Lukaku just past the hour mark as Everton looked to take the game beyond Fulham, but the hosts were not a spent force and Dejagah netted an excellent equaliser, cutting in from the left before rifling past Howard at his near post.
With Fulham in the ascendancy, Howard denied Heitinga and Kasami in quick succession before Mirallas raced away to make it 2-1.
There was still time for Naismith to turn in a square pass from Baines and the Scot also hit the post from distance as Everton ultimately prevailed with a degree of comfort.