The Portugal international struck with a second-half header as Juventus, runners-up in the previous two seasons, got their hands on the trophy for the first time since 2015.
It was also a first piece of silverware for Ronaldo since he swapped Real Madrid for Juventus last summer, reports The Guardian.
Juve dominated the first half with Douglas Costa firing a shot across goal and narrowly wide before João Cancelo also missed the target.
Blaise Matuidi had the ball in the net after half an hour but was judged to be offside. Ronaldo’s first opportunity arrived three minutes before the interval: his attempted scissor kick crashed into the turf before bouncing over the crossbar.
Juventus were almost caught out just before half-time when Hakan Calhanoglu’s snap-shot forced a smart save from Wojciech Szczesny.
Shortly after the break Milan’s Patrick Cutrone’s fierce shot beat Szczesny but crashed back off the crossbar.
After an hour Ronaldo ghosted beyond the Milan backline and glanced Miralem Pjanic’s ball past Gianluigi Donnarumma.
Paulo Dybala thought he had scored a spectacular second after a series of one-twos with Matuidi sliced open the Milan defence but once again an offside flag cut the celebrations short.
Gonzalo Higuaín, heavily linked with a move to Chelsea this month, came on as a substitute for Milan but their task got harder in the 73rd minute when Franck Kessie was sent off for a nasty foul on Emre Can.
Milan felt they should have had a late penalty when Can caught Andrea Conti in the area but the referee waved play on.