The Uruguayan found the net twice in the second half to give the Bianconeri a huge advantage heading into the second leg in six weeks' time
Caceres, in his first game back at Juve on loan from Sevilla, fired the Bianconeri ahead on 53 minutes, but Stephan El Shaarawy leveled matters just nine minutes later to send the tie to Turin level pegging. Caceres' lofted effort in the closing stages proved the decider, though, sending the tie to Turin with Juve in the box seat.
The visitors set the pace for much of the first half, taking the game to Milan with its usual fluid style, but after Marco Borriello failed to make the most of two good positions, El Shaarawy got himself into some space deep in Juve territory in one of the first moments of real threat. However, the young forward’s shot from near the bye-line flashed just across the face of goal with no Milan teammate around to tap in the loose ball.
A Juventus attack at pace down the left almost led to a goal at the other end, but after originally slipping, Marcelo Estigarribia leapt back up only to fire just wide of the far post. Moments later, Emanuele Giaccherini drifted into space and sent a deflected effort looping towards the top corner of Marco Amelia’s net, but the Milan keeper scrambled across to push the ball over.
Further half chances came and went in the first half as Juve failed to turn its superiority into a halftime lead. But it would take the club less than eight minutes to break the deadlock after the restart.
After a surging run forward by Simone Padoin ended in a collision with Thiago Silva, the ball broke for Borriello, whose shot was parried away by Amelia but only into the path of Caceres, who tapped home unchallenged to give his side a deserved lead.
The Rossoneri soon got onto level terms though. A fantastic left-footed cross on the run from Luca Antonini found Massimo Ambrosini at the far post, and the skipper's cool header back into the center made it easy for El Shaarawy to sidefoot home.
Moments later, the home side thought it had taken the lead when Zlatan Ibrahimovic beat Marco Storari from eight yards, but the Swede was adjudged to have deliberately handled the ball as it came to him from Mark van Bommel's deflected shot.
Mirko Vucinic passed up a good chance to put Juve back in front after Ambrosini lost the ball to Fabio Quagliarella, and then the Montenegrin failed to make enough space to get a shot away as he was crowded out in the Milan box.
However, the Bianconeri weren't to be denied, as wing back Caceres bagged a second goal seven minutes from time, lifting a side-foot shot across Amelia into the far corner of the net after Ambrosini failed to clear Giaccherini's searching pass.
The result makes Juventus the big favorite to progress ahead of the second leg at Juventus Stadium on March 21, with its unbeaten run in all competitions this season having been stretched to 24 games.