Dani Ceballos's injury-time winner settled a dramatic Emirates FA Cup quarter-final and put Arsenal into the last four of the competition.
Sheffield United looked to have forced extra time when David McGoldrick equalised three minutes from time, after Nicolas Pepe's first-half penalty had given the visitors the advantage.
Sheffield United 1-2 Arsenal
2019-20 Emirates FA Cup quarter-final
1pm BST, Sunday 28 June
Bramall Lane, Sheffield
Ceballos's late goal means the 13-time winners joined Manchester United – who scored a late goal of their own against Norwich City on Saturday – in the semi-finals.
Arsenal and Sheffield United already had history in the Emirates FA Cup, contesting a 2003 semi-final memorable for David Seaman's incredible save as well as a controversial fifth-round tie in 1999 that Arsenal offered to replay after scoring their winning goal in the initial match while a Blades player was down injured.
Home manager Chris Wilder retained six of the players who started the extra-time win over Reading in the fifth round 117 days earlier, while only four of Arsenal’s starting XI against Portsmouth kept their places with the likes of Pepe, Alexandre Lacazette and Granit Xhaka coming in.
Before kick-off, the two sides took part in a minute’s applause in tribute to the work of the National Health Service during the COVID-19 pandemic before taking the knee in support of the Black Lives Matter movement.
The Blades started the game as the brighter side and had the ball in the net after just eight minutes. However, with the help of the VAR, referee Paul Tierney ruled that John Lundstram was offside when he headed past Emiliano Martinez.
After that early fright, Arsenal responded well and were soon the beneficiaries of another VAR decision when, after Lacazette was felled by Chris Basham, a 25th-minute penalty was awarded and Pepe duly slotted past Dean Henderson.
Ivory Coast international Pepe was close to scoring a second soon afterwards but his drive was tipped wide by Henderson, who also denied Lacazette soon afterwards.
The latter part of the opening period was disrupted by injuries, with Lundstram being forced off while Oli McBurnie and Joe Willock both required treatment after a clash of heads.
Just before seven minutes of first-half injury time began, Pepe went close again when he latched onto Kieran Tierney’s cut-back only to slide the ball just wide of the United goal.
After a subdued start to the second half, the home side almost equalised in incredible circumstances as Henderson’s long kick forward caught the wind and bounced over his opposite number, Martinez, before clipping the top of the crossbar.
United had the ball in the net for a second time moments later when John Egan bundled in a header, but team-mate McGoldrick was offside earlier in the move.
Then, on the hour mark, Jack Robinson’s sumptuous cross from the left picked out Basham at the back post but his diving header somehow went wide as the hosts upped the pressure.
A flurry of second-half substitutions took the pace out of the game, as did the second of the two water-breaks introduced to matches with the competition now being played into the summer for the first time.
With it looking like the Gunners would hold on to secure their place in the last four, Sead Kolasinac's failure to deal with a long throw presented McGoldrick with the chance to prod home, which he duly took for an 87th-minute equaliser.
Not content with levelling the scores, the Blades went in search of a winning goal as substitute Billy Sharp drew a good save from Henderson.
But instead it was the visitors who found the deciding goal, as a counter-attack ended with Ceballos – also a substitute – sliding the ball in from a tight angle in the second-half stoppage time.
Sheffield United: Sheffield United: 1 Dean Henderson, 2 George Baldock, 3 Enda Stevens, 4 John Fleck, 6 Chris Basham, 7 John Lundstram, 9 Oli McBurnie, 12 John Egan, 16 Ollie Norwood (C), 17 David McGoldrick, 19 Jack Robinson
Substitutions: 32 Sander Berge for Lundstram 35', 18 Kieron Freeman for Baldock 63', 10 Billy Sharp for Basham 75'
Unused substitutes: 25 Simon Moore (GK), 8 Luke Freeman, 15 Phil Jagielka, 22 Lys Mousset, 23 Ben Osborn, 30 Richairo Zivkovic
Goal: David McGoldrick 87'
Yellow cards: John Fleck 30' & Jack Robinson 75'
Manager: Chris Wilder
Arsenal: 26 Emiliano Martinez, 3 Kieran Tierney, 9 Alexandre Lacazette (C), 15 Ainsley Maitland-Niles, 19 Nicolas Pepe, 20 Shkodran Mustafi, 23 David Luiz, 28 Joe Willock, 31 Sead Kolasinac, 34 Granit Xhaka, 77 Bukayo Saka
Substitutions: 16 Rob Holding for Luiz 54', 8 Dani Ceballos for Willock 67', 30 Eddie Nketiah for Lacazette 67', 5 Sokratis for Pepe 90+3'
Unused substitutes: 33 Matt Macey (GK), 2 Hector Bellerin, 14 Pierre-Emerick Aubameyang, 24 Reiss Nelson, 57 Matt Smith
Goals: Nicolas Pepe (penalty) 25' & Dani Ceballos 90+1'
Manager: Mikel Arteta
Referee: Paul Tierney