Leeds United's late season slump went from bad to worse as they stretched their winless streak to four games with a shock 3-2 loss to a 10-man Ipswich Town side on the final day of the Championship season.
Norwich City lifted the Championship trophy after a 2-1 victory over Aston Villa saw them fend off the challenge of Sheffield United on a final day that also saw Derby County secure a place in the play-offs.
Derby's 3-1 win over West Brom, who ended the season in fourth, ensured Frank Lampard's men finished sixth ahead of Middlesbrough, who did all they could by beating Rotherham United 2-1.
Leeds United's place in the play-offs was already assured but their defeat at last-placed Ipswich Town left Marcelo Bielsa's men struggling for form ahead of their shot at Premier League promotion.
Socceroos defender Bailey Wright's Bristol City, who could have secured a top-six finish if Derby and Middlesbrough slipped up, drew 1-1 at Australia teammate Jackson Irvine's Hull City.
Second-placed Sheffield United, who drew 2-2 at Stoke City, will have the luxury of sitting back and watching while Leeds, West Brom, Villa and Derby contest the Championship play-offs.
LEEDS SLUMP TO THIRD DEFEAT IN FOUR
A calamitous mix-up between Leeds goalkeeper Kiko Casilla and defender Luke Ayling gifted a winning goal to Collin Quaner, who slid the ball home to earn already-relegated Ipswich a win over Bielsa's out-of-sorts side.
Flynn Downes put Town ahead when the visitors failed to clear their lines at a free-kick, but Mateusz Klich popped up with an equaliser just before the interval, slamming the ball inside the near post from 12 yards.
Andre Dozzell restored Ipswich's lead as Leeds were caught napping at the back two minutes into the second half, before Stuart Dallas equalised from close range when Kemar Roofe's shot rebounded off the crossbar.
Luke Chambers felled Roofe three minutes later and was sent off before the Leeds striker ballooned the ensuing penalty over the bar, and in the final minute the visiting fans were left in disbelief as their side slumped to a third defeat in four matches heading into the play-offs.
LATE VRANCIC STRIKE ADDS GLOSS TO CANARIES' GLORY
Mario Vrancic scored Norwich's winner four minutes from time to send their travelling fans wild on a day when Daniel Farke's men were bidding to claim the Championship title.
In the end Sheffield United's draw at Stoke rendered the Canariers' result irrelevant, but it will not have felt that way to Farke and his players who capped a fine season with a win over one of the division's form teams.
Villa were unbeaten in 12 going into the game but they fell behind when Teemu Pukki tapped home Onel Hernandez's cross after seven minutes.
Jonathan Kodjia levelled matters seven minutes later, sweeping Conor Hourihane's low free-kick into the net, and Dean Smith's side looked the better side for spells before Vrancic rifled a shot into the bottom corner of Jed Steer's net from the edge of the box to put the sheen on a day of celebrations across Norfolk.
DERBY SECURE SIXTH AFTER DRAMA AT PRIDE PARK
Derby County clinched a place in the Championship play-offs at Middlesbrough's expense after they beat West Brom 3-1 at Pride Park.
Lampard's men took the lead when Martyn Waghorn rose to meet Jayden Bogle's first-time cross, timing his run well to shake off his marker and nod the ball down into the bottom corner of the net.
Waghorn limped off injured after 40 minutes and Stefan Johansen's equaliser for West Brom meant that Middlesbrough – who were 2-0 up at Rotherham at the time – were set to take the Rams' place in the top six.
But after Tom Lawrence's close-range shot was saved by Sam Johnstone's outstretched leg, Mason Bennett pounced on the rebound and poked it into the net to restore Derby's lead.
Lawrence then jinked his way into the area only to be felled by Kyle Bartley, and Harry Wilson buried the penalty kick in the bottom-left corner of the net before Baggies substitute Hal Robson-Kanu was sent-off for kicking out at Bradley Johnson.
THREE POINTS NOT ENOUGH FOR BORO
John Obi Mikel scored his first league goal in English football for almost six years as Middlesbrough beat Rotherham, but a fifth win in six Championship matches was not enough to lift Tony Pulis' men into the play-off places.
Elsewhere, Brentford ended the season on a high as they beat Preston North End 3-0 at Griffin Park, and there were also wins for Nottingham Forest, Queens Park Rangers and Wigan Athletic, while Birmingham City drew 0-0 at Reading and Blackburn Rovers were held to a 2-2 draw by Swansea City.