A stirring second-half fight-back saw AFC Bournemouth come from behind to poop ten-man Norwich City’s promotion party at Carrow Road.
Goals from Sam Surridge, Arnaut Danjuma and Lloyd Kelly saw the Cherries move seven points clear in the play-off places with just four games remaining.
It was also the Dorset club’s first victory at Carrow Road since October 1959, although this was only the fifth meeting between the teams at the venue since then.
Norwich had sealed promotion to the Premier League earlier in the day after neither Brentford nor Swansea could manage to take maximum points from their respective games.
And Emi Buendia’s 13th goal of the season gave Daniel Farke’s team a fifth-minute lead before Dimitris Giannoulis saw red for a poor challenge on Ben Pearson after 17 minutes.
The Cherries thought they had taken advantage just four minutes later, only for Dominic Solanke’s effort to be ruled out for offside.
Solanke was just inches from the line and had edged ahead of the Norwich defence when he touched home Danjuma’s goalbound shot.
Although the hosts enjoyed a good deal of possession following Giannoulis’s departure, they found clear chances hard to come by in the first half.
But it was a different story after the break after Surridge scored with his first touch to restore parity before man-of-the-moment Danjuma and Kelly both netted from 25 yards.
Head coach Jonathan Woodgate named an unchanged starting line-up and substitutes’ bench following the Cherries’ 2-1 win at Huddersfield in midweek.
Captain Steve Cook played his 350th league game for the club, only the eighth player to have reached this landmark appearance milestone.
Norwich were also unchanged following their 1-0 win at Derby seven days ago, a victory which extended to 13 games their unbeaten run.
Cherries goalkeeper Asmir Begovic raced off his line to beat Teemu Pukki to a through ball as the hosts made the early running.
Shots from Kieran Dowell, which was charged down by Cameron Carter-Vickers, and Buendia, which flashed past the post, were warning signs for the visitors.
And the opening goal came in the fifth minute when Buendia clipped the ball past Begovic from six yards after Pukki had slipped him with a delightful pass.
The Cherries were forced to work hard for their chances and Phil Billing saw his effort from close range blocked by Norwich defender Andrew Omobamidele.
Norwich were reduced to ten men when left-back Giannoulis received a straight red card for a lunging tackle on Pearson in the 17th minute.
The Cherries were convinced they had levelled through Danjuma in the 21st minute after he had been picked out by Jefferson Lerma’s slide-rule pass.
But after Danjuma had turned inside and taken aim, his goalbound shot was touched home by Solanke who had strayed offside.
Todd Cantwell fired high over the crossbar after Pukki had mounted an attack having intercepted a Cherries corner inside his own 18-yard box.
A fine reaction save from Norwich goalkeeper Tim Krul denied Solanke after he had met Danjuma’s cross at the near post in the 31st minute.
As the Cherries began to gain a foothold in proceedings, Lerma’s strike from distance found the grateful arms of Krul.
Woodgate’s team had plenty of possession in the second half of the opening period but Norwich defended well to restrict them to few chances.
Lerma, who was booked in the first half for a foul, made way at half-time and was replaced by Surridge, the substitute making a dramatic introduction.
Surridge scored with his first touch, the striker arriving at the far post to sweep home Kelly’s deflected cross five minutes after the restart.
Kelly’s centre struck Omobamidele before Krul parried it into Surridge’s path and he made no mistake from close range.
And although the Cherries appeared to have been robbed for a second time after the linesman Neil Davies flagged for offside, referee Graham Scott overruled his assistant.
Buendia went close to restoring Norwich’s lead when his left-foot shot from the edge of the box flew narrowly wide of the upright.
However, it was Danjuma who bagged the third goal of the contest, the Dutchman posting another goal-of-the-season contender in the 57th minute.
Having created space for himself on the left wing, Danjuma darted inside and found the top corner of Krul’s net with a stunning strike from 25 yards.
Danjuma turned provider for Kelly to make it 3-1 after 76 minutes, the defender beating Krul with a low drive, the goalkeeper conceding another 25-yarder.
Signed from Bristol City in the summer of 2019, it was Kelly’s first goal for the Cherries and his first since scoring for the Robins in September 2018.
Victory saw the Cherries establish a seven-point cushion in the race for play-off places ahead of their trip to Millwall on Wednesday.
AFC Bournemouth: Begovic, Smith, S Cook, Carter-Vickers, Kelly, Pearson, Lerma (Surridge, h-t), Brooks (Stanislas, 71), Billing, Danjuma (Stacey, 90), Solanke.
Unused subs: Rico, Mepham, Riquelme, Anthony, Wilshere, Travers (g/k).
Booked: Lerma, Smith, Brooks.
Norwich City: Krul, Aarons, Omobamidele, Hanley, Giannoulis, Skipp, McLean, Buendia (Hernandez, 76), Dowell (Sorensen, 22), Cantwell (Hugill, 76), Pukki (Placheta, 55).
Unused subs: Vrancic, Stiepermann, Mumba, Tettey, Nyland (g/k).
Booked: Krul, Skipp, McLean.
Sent off: Giannoulis.
Referee: Graham Scott.