Simon Kjaer's last-gasp header grabbed a draw for AC Milan and a vital away goal in their 1-1 draw with Manchester United in the Europa League last 16 first leg.
Milan dominated the first half as Franck Kessie saw his fine volley ruled out by VAR for a handball, while Harry Maguire somehow missed a sitter from a yard out just before the break, shinning his effort onto the post.
But just minutes after coming on at half-time, Diallo's brilliant header with his back to goal from Bruno Fernandes' superb pick-out put United ahead (50), the 18-year-old's first goal for the club since his £37m move from Atalanta in January.
Dan James missed another clear opportunity in the second half to extend United's lead, and they were made to pay as Milan grabbed a deserved leveller on the balance of the game with Kjaer heading Rade Krunic's corner past Dean Henderson, who got a touch to the effort and should have done better.
It means Milan take an away goal back to Italy for the second leg on March 18.
Man Utd: Henderson (5), Wan-Bissaka (6), Bailly (6), Maguire (5), Telles (5), McTominay (7), Matic (6), James (6), Bruno Fernandes (7), Greenwood (7), Martial (6)
Subs: Diallo (7), Fred (5), Williams (5), Shaw (5)
AC Milan: Donnarumma (7), Calabria (7), Kjaer (8), Tomori (8), Dalot (7), Krunic (6), Meite (6), Kessie (8), Saelemaekers (7), Brahim Diaz (7), Rafael Leao (6)
Subs: Tonali (6), Castillejo (6), Kalulu (6)
Man of the match: Franck Kessie
How Milan grabbed deserved draw in eventful tie
Despite having several first-teamers out, including former Man Utd man Zlatan Ibrahimovic, Milan came fastest out of the blocks during a poor first half for the hosts.
Milan had the ball in the net twice early on - first, Rafael Leao was offside before finishing from a slight angle from a simple ball over the top, before Kessie's brilliant chest and volley was disallowed by VAR after his handball in the build-up.
United left gaps in their defence that went unpunished as Rade Krunic and Alexis Saelemaekers forced saves of Dean Henderson, but the hosts should have been ahead against the run of play just before the break.
After a cross fell to Maguire at the far post unmarked, the defender somehow diverted the ball against the post when it looked harder to miss from just a yard out.
At half-time, Anthony Martial was brought off with an injury, and his replacement Diallo made an instant impact.
Fernandes, who had struggled to get in the game, sent a sumptuous ball over the Milan defence, and Diallo, with his back to goal, 12 yards out, directed an expert backwards header over Gianluigi Donnarumma and into the net.
It was Diallo's first shot for the club in just his third appearance, all from the bench, and the piece of magic an under-par United were desperately looking for.
Though United improved markedly in the second half, Milan still had their moments; livewire Kessie's angled shot was turned around the post by Henderson, while Krunic powered a header over in space at the far post from Davide Calabria's cross.
But United should have added to their lead with another glaring miss, this time from Dan James, as he missed with the goal gaping at the far post from Mason Greenwood's delivery.
Man Utd made four changes from the side that beat Man City 2-0 on Sunday as Bailly, Telles, Matic and Greenwood came in to replace Lindelof, Shaw, Fred and the injured Rashford.
AC Milan were without the injured former Man Utd man Zlatan Ibrahimovic, but there were a few familiar faces among the XI. On loan Man Utd right-back Diogo Dalot started as well as Fikayo Tomori, signed on loan from Chelsea in the summer.
Milan made two changes from the weekend win over Verona as Kjaer and Brahim Diaz came in for Romagnoli and Castillejo.
As expected, Milan piled on the pressure late on, and some last-ditch defending looked to have ensured the Italians didn't score that vital away goal, with Henderson close to making it six clean sheets in his last six starts for United.
But after Krunic's late corner was headed goalwards by Kjaer, goalkeeper Henderson should have done better, getting a hand to the header but not strong enough to prevent it going past him.
On balance, Milan deserved the goal, meaning United must score in Milan next week with the tie set up perfectly.
- Amad Diallo became the youngest non-British player to score for Manchester United in major European competition (18y 243d), netting with his first ever shot for United.
- When failing to win the first leg at home, Manchester United have been eliminated from six of their last eight ties in European competition, most recently against Barcelona in the 2018-19 Champions League.
- Milan's leveller ended a run of 503 minutes in which Manchester United hadn't conceded in all competitions.
- Milan's equaliser was the first UEFA Europa League goal Manchester United have ever conceded in the 90th minute or later.
Man Utd now host West Ham on Sunday at 7.15pm, live on Sky Sports Premier League, while AC Milan are at home to Napoli in Serie A at 7.45pm on Sunday.
The second leg of this last 16 tie will be on Thursday March 18 at 8pm.