Cardiff City’s recent revival continued as they scored two late goals to stun Norwich City in the Welsh capital.
Callum O’Dowda fired home through a crowd in stoppage time after Callum Robinson’s deflected 89th minute effort looked to have rescued Cardiff a point.
Borja Sainz kept up his stunning recent scoring record as he crashed home his ninth goal in his past eight games and 11th league goal of the season on 52 minutes.
However, substitute Robinson wriggled free with a minute remaining to fire Cardiff level and set up a grandstand finish.
And it was O’Dowda who had the final word as the left-back hammered home a winner deep into stoppage time to stun the Canaries.
It was always likely this would be a close contest between two sides who have improved markedly since the start of the season.
Both managers were forced to make three changes and were without their first choice central strikers with Cardiff’s Robinson only fit for the bench with an Achilles injury and Norwich’s Josh Sargent ruled out altogether.
Norwich headed to south Wales as one of the form sides in the Championship and unbeaten in their past seven matches, though their previous defeat did come after a trip over the Severn Bridge in a 1-0 reverse to Swansea City on 14 September.
Cardiff have also been much improved in recent weeks, with only Sunderland and Leeds earning more Championship points than the Bluebirds since interim boss Omer Riza took charge following the sacking of Erol Bulut.
The Bluebirds have steadily recovered from their worst start to a season and came close to opening the lead in this one, but Chris Willock’s effort skimmed the post after Ollie Tanner’s purposeful run and cross.
However, the visitors grew into the contest as a first half of few chances drifted by, with Shane Duffy heading wide from a corner on 21 minutes and Sainz’s fine run and shot forcing Jak Alnwick into a fine save.
Sainz, the top goalscorer in the Championship has been integral to Norwich’s attacking output and he again forced Alnwick to save after Oscar Schwartau saw two efforts blocked following a corner Cardiff failed to clear.
It was no surprise that Sainz was the player who broke the deadlock with the first chance of the second half and he hammered home from 25 yards after David Turnbull squandered possession.
Sainz was central to everything good about the visitors and it took an excellent save from Alnwick to deny him a second, with Dimitrios Goutas clearing off the line from Jack Stacy’s rebound effort.
Ante Crnac also saw an effort saved by Alnwick and another shot whistle just past the upright as the Canaries pushed for a second goal with some incisive breakaways.
Cardiff kept pushing for an equaliser and Turnbull was twice denied by goalkeeper George Long, who almost turned a cross into his own net in a rare moment of panic in the visiting defence.
However, Norwich were breached on 89 minutes as Robinson wriggled free and his effort struck Shane Duffy and wrong-footed Long.
Cardiff completed the most unlikely of comebacks deep into injury time when O’Dowda fired home through a crowded penalty area as Norwich paid the ultimate price for failing to score a second goal.
Post-match reaction
Cardiff City boss Omer Riza told BBC Sport Wales:
“It was a really emotional day today, these are the things you can’t explain sometimes.
“It was emotional in the end in the changing room and credit to the players, it’s a great result and we’ve comeback against great opposition, a very good side and we’ve managed to beat them.
“It was a moment of magic, a great goal that they scored… but we managed to get back into the game and win.
“At 1-1 I was happy, they are a good team, but we never wanted them to stop driving. I’d have been happy with 1-1, but now I’m ecstatic. To win 2-1 is a great feeling.”
Norwich City boss Johannes Hoff Thorup said:
“It was a great game for us for 75 minutes, we did everything possible to get the three points.
“We did everything except score the second goal… that would have killed the game for us.
“We have to make sure the players know that for first 75 minutes they were outstanding and I cannot expect more from the guys.
“I am sure everyone can agree on the performance. Football is not always dictated by that. We need to take the learning out of this and learn from the moments in the second half that were not good enough.”