A late winner from John Marquis put Championship side Millwall into the fifth round of the FA Cup at the expense of Premier League Aston Villa.
Marquis headed in a rebound off the bar to knock Paul Lambert's side out of their second cup competition this week.
Darren Bent gave Villa a first-half advantage when his scuffed shot rolled in following a rapid counter-attack.
But Villa's vulnerability at set pieces saw their lead last five minutes, with Danny Shittu heading in from a corner.
The Midlands outfit were knocked out of the Capital One Cup by Bradford City of League Two on Tuesday, losing the semi-final 4-3 on aggregate, and are one place above the Premier League relegation zone following a run of six league games without a win.
Villa looked like a side under pressure in the early stages until Darren Bent, starting for the first time since the 2-1 FA Cup win over Ipswich earlier in the month, mis-kicked the ball into the net after Millwall goalkeeper David Forde had palmed away Andreas Weimann's effort.
Shittu then headed a corner onto the roof of Shay Given's net, but the Villa defence did not heed this warning as the hosts equalised only five minutes after Bent's opener.
James Henry's corner was met by Shittu at the back post and Given could not stop the defender's header from flying past him.
The hosts were on top for the rest of the first half and after the break, with Liam Feeney firing just wide at another corner where the Premier League side looked vulnerable.
Some Millwall supporters threw bottles in the direction of assistant referee Mark Scholes following a free-kick decision that went against their side, which held the game up for about five minutes.
Villa created little for much of the second half, and only Forde's save from Barry Bannan's shot gave the home fans any concern.
But Villa buckled in the closing stages, Marquis heading an Adam Smith cross onto the bar before pouncing on the rebound to nod the ball into an empty net for his first goal since August 2011.
The earlier stoppage saw six minutes added on but Villa could not claw back the deficit, and Kenny Jackett's side hung on for a deserved win.