The Scottish striker took his goal tally for the season to 10 with three long-range strikes to crank the pressure back up on Forest boss Stuart Pearce.
The visitors threatened a comeback when Henri Lansbury scored either side of half-time, and would have dragged themselves level but for a glaring miss by top-scorer Britt Assombalonga.
But Fulham held out for a victory which was a far cry from when the teams met at the City Ground in mid-September, with Forest top of the table and Fulham rock bottom.
A 5-3 defeat that day signalled the end of Felix Magath’s ill-fated spell in charge and such has been Fulham’s revival under Kit Symons – and Forest’s decline from those heady days – that the sides are now level on points in mid-table.
Pearce hoped Forest had turned a corner after a dramatic 2-1 win at fierce rivals Derby on Saturday, their first win in nine attempts, but it was back to the drawing board after McCormack struck three times in 28 minutes.
McCormack looked in the mood to give Forest a torrid evening when, after just three minutes, his vicious, swerving effort from the edge of the box was tipped over at full stretch by Dorus de Vries.
But the Forest ‘keeper was beaten four minutes later when McCormack collected Hugo Rodallega’s lay-off and buried a low shot into the corner of the net from 20 yards.
McCormack had his second in the 18th minute from the same range, driving off a post after Rodallega’s effort had been blocked.
Forest should have pulled one back when a dreadful back-header from Kostas Stafylidis let in Assombalonga, but Marcus Bettinelli was out quickly to block his shot.
Moments later De Vries pulled off a fine, point-blank save to deny Seko Fofana, but he was picking the ball out of the net again in the 35th minute as McCormack celebrated his treble.
The former Leeds striker’s shot from the left corner of the area took a big deflection off Todd Kane to loop over the helpless De Vries and into the net.
Forest did get on the scoresheet in first-half stoppage time when Lansbury curled in a fine free-kick from the edge of the area, and in the 62nd minute the former Arsenal midfielder prodded in his second.
But Assombalonga somehow fluffed a golden chance to equalise when he missed an empty net with a header from three yards to prove it was not going to be Forest’s night.