Juan Mata curled in a free-kick with five minutes to go, before Ashley Young’s set-piece was bundled into his own net by Juventus defender Alex Sandro.
Cristiano Ronaldo had put the hosts ahead with an outstanding volley against his former club.
Ronaldo watched Leonardo Bonucci’s long pass over his shoulder before lashing it past United goalkeeper David De Gea for his first goal in the competition since signing for the Serie A leaders.
Juventus had hit the frame of the goal either side of half-time, with Sami Khedira striking a post and Paulo Dybala curling an effort on to the bar.
Jose Mourinho’s side offered little attacking threat at the other end, until substitute Mata beat goalkeeper Wojciech Szczesny with a well-placed free-kick from the edge of the box in the 86th minute.
Three minutes later and another United free-kick proved Juventus’ undoing, as Young’s in-swinging delivery was inadvertently turned in under pressure by Sandro from close range.
The visitors’ late double keeps them second in Group H and two points above Valencia, who beat Young Boys 3-1 in the early kick-off, with two games still to play.
United leave it late… again
United have made a habit of staging late recoveries this season, although manager Mourinho bemoaned his side’s inability to do so when they were beaten by Juventus at Old Trafford last month.
But, while comeback wins over Newcastle and Bournemouth in the Premier League offered relief rather than the chance to rejoice, this victory was more reminiscent in its nature of United’s Champions League triumph over Bayern Munich in 1999.
Mourinho’s side look a long way from winning the competition 20 years on, but his players’ reaction at the final whistle – and Mourinho’s cupped ear to the Juventus fans – showed how important taking three points in Turin was to the Reds.
Juventus had won three from three and were yet to concede a goal in the Champions League this season before Mata’s strike, while United’s late winner inflicted only the Serie A champions’ second loss at home in the group stages in 36 games.
United – without Belgium forward Romelu Lukaku, who is also a doubt for Sunday’s Manchester derby – opted for Alexis Sanchez to lead the line, but the Chilean had a bigger influence on the visitors’ defensive performance than he did their attack.
The same could be said for Anthony Martial, who tracked Juventus right-back Mattia De Sciglio relentlessly as United defended resolutely before Ronaldo’s opener.
But United, who had just three shots on target, proved clinical in attack when it mattered and will progress from the group if they beat Young Boys at home later this month and Valencia fail to beat Juventus.
Showstopper Ronaldo upstaged in Turin
It was always going to happen, wasn’t it? Ronaldo scoring his first Champions League goal for Juventus against former club United.
The Portugal forward, who joined the Italian outfit from Real Madrid for £99.2m in the summer, was without a goal in the competition since scoring against Juve for his former side in April.
But Ronaldo’s first in Europe for the Serie A leaders was worth waiting for, showing superb technique to volley in Bonucci’s well-weighted long pass for the opener.
The five-time Champions League winner had struggled to make an impact on the tie before his moment of brilliance, though it was from his pull-back that Khedira struck a post in the first half.
Dybala was unlucky to not put the hosts ahead moments after Khedira’s chance when he cut inside and curled a dipping effort against the crossbar, while De Gea had earlier produced an instinctive save after Juan Cuadrado’s cross was deflected goalwards by Nemanja Matic.
But when the goal came, it was worthy of a player who has won the Ballon D’Or five times, and the 33-year-old celebrated in trademark fashion – lifting up his shirt to reveal his muscular physique.
Ronaldo thought he had stolen the show, but the Portuguese, and his Juventus team-mates, were upstaged by United’s late twist.