Morgan Gibbs-White's first Premier League goal secured a 2-1 win for Wolverhampton Wanderers at Molineux, and frustrated Brighton and Hove Albion in their bid to clinch mathematical survival.
The Seagulls were well on their way at half time after Lewis Dunk's opener, but his red card for a foul on Fabio Silva changed the game. Substitute Adama Traore equalised before the last-gasp winner.
Brighton's Neal Maupay was also dismissed for arguing with the referee at full time.
Wolves mount stunning fightback to beat Villa, Saints see off Leeds
Wolves started with purpose, looking to avenge their 4-0 mauling by Burnley a fortnight ago. The first sight of goal for either side came from Vitinha, who struck wide from the edge of the area after a deflection.
Just 13 minutes in, though, Brighton took the lead against the run of play. Pascal Gross' corner was powered home by Dunk. From then, the game changed.
The visitors began to threaten from wide areas through Alireza Jahanbakhsh and Leandro Trossard. Conor Coady cleared a cross from the former, and the resulting corner almost brought a second goal for Dunk.
Rui Patricio was there to save, before Adam Webster won another aerial battle and forced him into action again.
- 'I don’t know about my future' - Sancho fuels move
- Arteta planning Arsenal squad shake-up
- Kane asks Spurs to consider bid, United ready with £90m offer - Paper Round
Wolves attempted to rally before half time, but were lucky to go into the break only one goal down.
It was a different story after the break; Nuno Espirito Santo's side started to force the issue. Max Kilman and Gibbs-White both tested Robert Sanchez with decent efforts.
Momentum swung when Dunk, the goalscorer, was sent off for hauling Fabio Silva down as he went through on goal. He could have no complaints and sensing a chance, Nuno summoned Traore from the bench.
With just under 15 minutes remaining, the substitute made the difference with a stabbed finish past Sanchez, who had been keeping Wolves at bay since half time.
He almost laid on the winner on 84 minutes; after latching on to a loose ball and rounding Sanchez, the Spaniard squared for Gibbs-White, only for the youngster to miss an open goal.
All was forgiven in stoppage time when Gibbs-White curled a brilliant strike in to win the game for Wolves and keep Brighton waiting.
TALKING POINT - Dunk's red card flipped the game for Potter's men
Brighton were cruising at half time and Dunk was a huge reason for that. His header was trademark, and his side looked well on top. Although Wolves were beginning to threaten early on in the second half, it was his rush of blood on Fabio Silva which proved critical. Graham Potter had to rethink his approach and, in the end, Wolves took full advantage.
Traore celebrates his equaliser
Image credit: Getty Images
MAN OF THE MATCH - Adama Traore (Wolves)
He may not have been on the pitch for long, but Traore was crucial. Nuno spotted an opportunity to introduce him and he offered the required impetus, aside from also scoring a huge goal.
Wolves: Rui Patricio 6, Ait-Nouri 6, Coady 6, Hoever 6, Kilman 6, Gibbs-White 7, Moutinho 5, Neves 5, Podence 6, Vitinha 6, Silva 6 Substitutes: Traore 8, Willian Jose 6, Dendoncker N/A
Brighton: Sanchez 6, White 7, Dunk 5, Webster 6, Burn 6, Jahanbakhsh 7, Gross 7, Bissouma 7, Welbeck 6, Trossard 6, Maupay 5 Substitutes: Moder 5, Mac Allister 5, Zeqiri N/A
13' - GOAL! Lewis Dunk powers home Pascal Cross' corner. Brighton lead 1-0.
53' - RED CARD! Dunk is off for hauling down Silva as he was through on goal. Big moment.
76' - GOAL! Traore levels it up! Lovely link up and finish.
84' - OVER! Traore wins the ball from a poor backpass, rounds Sanchez and squares it for Gibbs-White, who somehow can't finish. What a chance.
90' - GOAL! This time Gibbs-White does it! His first in the Premier League.
90' - RED CARD! Neal Maupay sent off after full time for arguing with referee Jon Moss.
All of Traore's seven Premier League goals have come in the second half.
Barclays FA WSL
Little hits 150th Arsenal goal as Gunners extend perfect start in WSL
Arsenal held by Brighton to halt winning run