Middlesbrough claimed a 2-1 win at Rotherham but it was not enough for them to snatch the final Sky Bet Championship play-off spot.
First-half goals from Britt Assombalonga and John Obi Mikel put the visitors in a commanding position before Rotherham pulled one back through Michael Smith late on.
Boro held on for the victory but Derby's win over West Brom meant Tony Pulis' men finished outside of the top six, a point behind the Rams.
It was already-relegated Rotherham who did the early pressing with Smith forcing Darren Randolph into a neat stop with a shot across goal.
Boro's first chance was a good one as Assombalonga snuck through on goal but slipped his effort wide when one-on-one with Lewis Price.
The visitors' other frontman Ashley Fletcher was the next to take aim but again he did not trouble Price from the edge of the box.
An even better opportunity fell to Boro defender Ryan Shotton but he headed Lewis Wing's free-kick over when unmarked.
Smith was then guilty of missing a glaring chance at the other end as he spooned over after Matt Crooks had opened up Boro's defence down the left and squared back for the striker.
The away side were quick to make them pay when Assombalonga won and scored a 28th-minute penalty after being pulled down in the box by Clark Robertson.
The striker should have made it 2-0 moments later as he fired wide after beating the offside trap.
Middlesbrough did not to wait too much longer to double their lead, though, with Mikel netting in the 37th minute.
The ball fell to the Boro skipper from a corner and he viciously lashed it into the roof of the net through a crowd of bodies.
Mo Besic could have made the points even more secure in the second half after he latched onto a loose ball from Semi Ajayi and powered towards goal, only to fire over from the edge of the box.
Rotherham continued to have a go and it took a brave block from George Saville to deny Joe Newell from inside the box following a good move.
Ajayi then rose highest from a corner but his header was incredibly clawed out by Randolph.
Millers substitute Kyle Vassell was the next to come close as he burst down the left and his poked shot was kicked away by Randolph.
Vassell came even closer moments later as he muscled his way through before unleashing a fierce strike which rattled the woodwork.
And it was Vassell in the thick of it again in the 86th minute, winning Rotherham a penalty after he was tripped by Mikel when he was about to pull the trigger.
Smith stepped up and finally beat Randolph from the spot with a cool finish, but Rotherham were unable to find an equaliser at the end of a match which saw both sides suffer disappointment.
ga('create', 'UA-72310761-1', 'auto', {'name': 'pacontentapi'});
ga('pacontentapi.set', 'referrer', location.origin);
ga('pacontentapi.set', 'dimension1', 'By Press Association Sport Staff');
ga('pacontentapi.set', 'dimension2', 'ae173f95-0ca7-409b-a74a-b46b7c17f7da');
ga('pacontentapi.set', 'dimension3', 'paservice:sport,paservice:sport:club-news,paservice:sport:football,paservice:sport:match-reports');
ga('pacontentapi.set', 'dimension6', 'story');
ga('pacontentapi.set', 'dimension7', 'composite');
ga('pacontentapi.set', 'dimension8', null);
ga('pacontentapi.set', 'dimension9', 'sport:football');
ga('pacontentapi.send', 'pageview', { 'location': location.href, 'page': (location.pathname + location.search + location.hash), 'title': 'Middlesbrough beat Rotherham but miss out on play-off spot'});