Carabao Cup Round Five is complete, with two night and four ties providing entertainment aplenty.
On Tuesday night, Manchester City looked set for a straightforward evening when Bernardo Silva gave them a 26th-minute lead at the King Power.
With the fixture seemingly wrapped up, Leicester City won a penalty deep into stoppage time, and Jamie Vardy converted to send the evening's live Sky Sports action to extra time.
The 30-minute period went by without much in the way of any goalmouth action, so the tie was to be decided by a penalty shootout.
Both sides were faultless before Jamie Vardy missed the target, and Riyad Mahrez saw his spot-kick saved by Claudio Bravo to send Pep Guardiola's side through.
City are through!
— Carabao Cup (@Carabao_Cup) December 19, 2017
Claudio Bravo saves from Riyad Mahrez to send @ManCity to the Semi-Final draw. pic.twitter.com/N1d47bPx6T
At the Emirates Stadium, it was a single goal that separated Arsenal and West Ham. Danny Welbeck was the man to strike for the Gunners, the England international stabbing home from close range on the brink of half-time.
FULL-TIME: @Arsenal’s 1-0 win over @WestHamUtd sends the Gunners through to the #CarabaoCup Semi-Finals. pic.twitter.com/K7hAcSHiPw
— Carabao Cup (@Carabao_Cup) December 19, 2017
Bristol City, having already knocked Watford, Stoke City and Crystal Palace out of the Cup, faced off against current holders Manchester United on Wednesday night and took a shock lead, only for Joe Bryan's stunner to be cancelled out by a free-kick from the returning Zlatan Ibrahimovic.
With extra-time on the horizon, there was a late winner, and it was scored by Korey Smith to send the Ashton Gate faithful into raptures.
The night's other tie offered equal entertainment, with Willian's early goal looking like sending Chelsea through to the last four.
However, in stoppage time, Dan Gosling equalised for Bournemouth, but once again there would be no additional 30 minutes. Alvaro Morata struck the winner for the Blues, who will face London foes Arsenal in the next round, after the draw was confirmed later that evening.
DRAW: Click here for the Semi-Final draw details
Round Five results:
Tuesday 19th December 2017
Arsenal 1-0 West Ham United
Leicester City 1-1 Manchester City (Man City win 4-3 on penalties)
Wednesday 20th December 2017
Bristol City 2-1 Manchester United
Chelsea 2-1 AFC Bournemouth