Sergio Conceicao won his first game in charge of AC Milan as his new side came from behind to beat Juventus and set up an Italian Super Cup final with city rivals Inter.
Kenan Yildiz fired Juventus into a 21st-minute lead with a well-struck effort from 15 yards out after being set up by team-mate Samuel Mbangula.
But Milan scored twice in a four-minute spell in the second half to transform the match.
Former Chelsea midfielder Christian Pulisic equalised, blasting a penalty home after he had been brought down by Manuel Locatelli, with Milan gaining a fortunate second as Yunus Musah’s cross was deflected into his own net by Federico Gatti.
The four-team tournament features the winners and runners-up of last season’s Serie A and Coppa Italia, with all the matches taking place in Riyadh, Saudi Arabia.
In Monday’s final, Milan will now face Inter, who defeated Atalanta 2-0 in the other semi-final on Thursday thanks to two goals from Denzel Dumfries.
Former Porto manager Conceicao was appointed AC Milan head coach on Monday following the sacking of Paulo Fonseca, with the club eighth in Serie A, 14 points adrift of joint-leaders Atalanta and Napoli.
However, Conceicao saw his new side fail to register a single shot on target in the first half as Juventus took a deserved lead, before Yildiz missed two chances to put Juventus 2-0 ahead.
A failure to score a second proved costly as Milan were a much improved side after the break and were able to turn the game around to advance into the final.
Gatti’s own goal proved to be the winner, although he almost forced a penalty shootout, only to see his goal-bound shot in the 94th minute superbly blocked by defender Matteo Gabbia.