Juventus and Fiorentina grab late wins to set up Coppa Italia semi-final

Juventus players celebrate after scoring a goal against Sassuolo in the Coppa Italia.

Holders Juventus scraped into the semifinals of the Coppa Italia with a 2-1 victory over Sassuolo and will face Fiorentina after they also struck late on to beat Atalanta 3-2 on Thursday.

Juventus took the lead in the third minute when Paulo Dybala bounced home a volley.

Sassuolo hit back in the 23rd minute with Hamed Traore bending a superb effort past keeper Mattia Perin.

- ESPN+ viewers' guide: LaLiga, Bundesliga, MLS, FA Cup, more

Both sides had chances in the second half but Juventus grabbed the winner in the 88th minute when Dusan Vlahovic wriggled through on the left and his shot deflected in off the arm of Ruan Tressoldi.

Fiorentina left it even later with Nikola Milenkovic scoring in the third minute of stoppage time at Atalanta.

Krzysztof Piatek put the visitors ahead with an early penalty but Davide Zappacosta levelled on the half hour with a superb curling effort off the underside of the bar.

Jeremie Boga struck the post for Atalanta just before half-time with Mario Pasalic failing to turn in the rebound.

Boga, who signed for Atalanta on loan from Sassuolo in January, put Atalanta ahead with a superb goal in the 56th minute.

Fiorentina were awarded another penalty in the 71st minute when Teun Koopmeiners got a clearance all wrong and instead made contact with Youssef Maleh.

Piatek's penalty was saved by Juan Musso but he converted the rebound to set up a tense finale.

Zappacosta struck a fierce shot against the bar before Fiorentina were reduced to 10 men in the 79th minute as Lucas Martinez Quarta earned a second yellow card for a foul on Luis Muriel. But there was a sting in the tail as deep into stoppage time Milenkovic's controlled a knock down and dispatched a stunning half-volley into the bottom corner.

A VAR check for a possible handball added to the tension, but the goal stood and Fiorentina could celebrate.