Both sides were evenly matched in the first period with decent opportunities falling to Ignazio Abate, Diego Costa and M'Baye Niang before Bertrand Traore opened the scoring for the Blues, with Giacomo Bonaventura then equalising just before the break.
The sides continued their fierce competition into the second period, with good opportunities for Abate and Willian, before Oscar's double secured the win for Antonio Conte's side.
Both sides fly out of the traps
Despite it being a friendly, both sides were ferocious in their play from the off with each having decent opportunities to open the scoring early on. The first opportunity came two minutes in, as Abate got on the end of a great cross into the area but his header was beaten clear by Thibaut Courtois.
It was then the turn of Conte's side to test the Milan backline. Willian produced a similarly excellent cross which found Costa, but the striker should have done better with his header going wide of the mark.
Vincenzo Montella's charges then had the best opportunity of the match so far, with Niang being put through on goal but Courtois stood strong again as he turned the shot away with his foot.
Bonaventura replies to Traore's opener
Despite the Italians having the best opportunities early on, it was Chelsea who managed to take the lead.
A long throw from Ola Aina caught out Milan's defence with Nemanja Matic finding Victor Moses, and his effort was well saved by Gianluigi Donnarumma, but Traore was alive to the situation to fire home.
With seven minutes remaining before half-time, Milan somewhat deservingly scored an equaliser. It was a spectacular effort to get back into the contest, as Bonaventura curled a free-kick over the wall and out of the reach of the otherwise-unbeatable Courtois.
Both sides go close as game remains deadlocked
Both sides came out for the second period at the U.S. Bank Stadium, with a similar attitude to that in the first, and both had decent opportunities to take the lead.
Milan had their opportunity two minutes after the restart, when Niang set up Abate who looked to make up for his earlier miss, but his effort flashed just wide of the post.
It was then the turn of Willian who tried an effort from distance just before the hour mark, which stung the palms of Donnarumma on the first attempt, with the young stopper then doing well to collect the ball the second time of asking.
Oscar seals victory with quickfire double
As the game entered it's final stages, either side could have grabbed the late win, but it was Chelsea who managed to secure the victory.
They took the advantage with 20 minutes to play from the penalty spot. After Willian managed to pick out Cesar Azpilicueta who clipped the ball into the area, Andrea Poli raised his hands towards the ball, giving the referee no choice but to award a penalty.
A lot of exit rumours surrounded Oscar throughout the summer, but the Brazilian forward stated his case to Conte here as he gave the keeper no chance, firing home from the spot.
He secured the victory with three minutes remaining thanks to an excellent ball from Juan Cuadrado, with Oscar then controlling the ball well before firing an effort into the bottom corner.
Chelsea's next fixture will see them take on Weder Bremen at the Weserstadion on Sunday, August 7 with kick-off at 2pm BST.