Juventus beat AC Milan 4-3 on penalties after their pre-season friendly in Carson, California, ended in a 2-2 draw on Thursday.

The two Serie A giants produced an interesting hour at Dignity Health Sports Park, the home of Major League Soccer's Los Angeles Galaxy, before mass substitutions from both teams saw the game fizzle out.

German defender Malick Thiaw headed Milan in front in the 23rd minute, rising well in the box to power home a free-kick, floated in from deep by Theo Hernandez.

Juve pulled level 10 minutes later after Danilo fired home following a scramble in front of the goal.

Milan restored their lead in the 39th minute when Thiaw headed a Christian Pulisic corner towards Olivier Giroud and the veteran French striker hit a well-taken volley on the turn.

Juve fought back again with Federico Chiesa's free-kick into the box was flicked on by Daniele Rugani and took a slight deflection off Giroud on its way into the goal.

Both teams then made a flurry of substitutions, bringing on mainly reserves and youth players and the quality and intensity of the game quickly dissipated.

The game, part of the summer 'Soccer Champions Tour', was decided by a shoot-out in which Juve's back-up keeper Carlo Pinsoglio saved three spot-kicks to ensure a win for Massimiliano Allegri's team.

Both teams conclude their tour with games against top Spanish teams with Milan taking on Barcelona in Las Vegas on Tuesday and Juve up against Real Madrid in Orlando on Wednesday.