Middlesbrough's bid to reach the Championship play-offs ended in disappointment with a final-day defeat at Preston.
Boro kicked off in seventh, trailing Luton and Sheffield United by two points, and needed to beat Preston while hoping the Hatters or Blades dropped points to clinch a top-six finish.
But Alan Browne's volley, a Dael Fry own goal and an Emil Riis double sank their hopes despite Marcus Tavernier's reply, while Paddy McNair was sent off for handling Cameron Archer's goal-bound shot.
A first away defeat in six matches left Chris Wilder's side in seventh and a sixth successive season in the second tier.