Boro – reduced to 10 men and 3-1 down after 67 minutes when George Friend was dismissed for conceding a penalty subsequently converted by McCormack – thought they had rescued a point when substitute Kike made it 3-3 with a minute to go.
But Aitor Karanka’s side were punished for pressing for a winner when goalkeeper Dimitrios Konstantopoulos went up for a corner that was cleared, allowing McCormack to find the net at the other end.
The defeat, coupled with Norwich’s draw at Rotherham, saw Watford promoted to the Premier League after a 2-0 win at Brighton while Bournemouth, who have a superior goal difference, can join them if they beat Bolton on Monday.
Boro began brightly and Fulham were under pressure when Michael Turner fouled Patrick Bamford, Boro’s on-loan Chelsea striker.
Lee Tomlin nudged the free-kick to Grant Leadbitter, who flicked the ball up and launched a fierce shot that was touched over by Fulham goalkeeper Marcus Bettinelli.
Boro had Konstantopoulos to thank for the save that denied Hugo Rodellega after Adam Clayton had been dispossessed by Danny Guthrie just outside the area. Rodellaga could not get enough power on it and it was tipped wide.
Fulham took the lead in first-half stoppage time when Shaun Hutchinson headed on Bryan Ruiz’s corner to defensive partner Turner, who stooped to nod into the net from close range right in front of the Boro fans.
Boro began the second half with intent but Fulham almost doubled their lead when Bettinelli came out to clear and found McCormack on the right flank. The Scot’s cross was met by the head of Rodallega at the back post but somehow Konstantopoulos was able to pull off a superb save.
Boro were living dangerously and somehow McCormack and Rodallega were unable to set each other up as defenders failed to clear.
The reprieve was short-lived however as Daniel Ayala barged McCormack over from the next attack and the Scot dispatched the penalty himself.
A response was required and sub Adam Reach, part of a triple substitution on the hour, provided it within four minutes of coming on, firing in a shot that Bettinelli could not keep out.
Boro were immediately back in trouble, however, and Friend was shown a red card for upending Rodallega to concede another penalty which was converted once more by McCormack.
There was nothing left for Boro to do put press forward in the hope of a comeback and Tomlin saw an effort blocked again before Ayala headed home a cross from the right from Albert Adomah.
Patrick Bamford almost fashioned an equaliser but saw his back-post effort go across goal and wide before Ayala’s curling effort clipped the crossbar.
Fulham almost caught Boro again from a counter-attack but this time McCormack blazed over.
Still Boro came forward and Bettinelli had to dive to deny Reach, whose block of a clearance almost found the top corner.
There was still time for Kike to make it 3-3 after being set up by Tomlin – but Boro decided to carry on attacking and were made to pay by McCormack.