The Yellow and Reds therefore have a lead to protect ahead of the second leg of the contest next week, which is set up to be a fascinating affair between the two Serie A rivals.
The first opportunity of the match fell to Paulo Dybala after five minutes, but the Argentine lifted his effort over the crossbar from just inside the penalty box.
Less than a minute later, Roma had another chance, this time through Lorenzo Pellegrini, but his effort from a bouncing ball was always sailing over Mike Maignan's crossbar.
Roma goalkeeper Mile Svilar made a smart save to deny Tijjani Reijnders in the ninth minute during a lively start, before Maignan did brilliantly to deny Stephan El Shaarawy down the other end.
The visitors made the breakthrough in the 17th minute of the contest, with Mancini heading a corner from Dybala into the back of the net to silence the home supporters.
Olivier Giroud came close to a leveller for Milan in the 21st minute, but the experienced striker saw his first effort cleared off the line by Romelu Lukaku, before he was again denied by the Belgian from the follow-up.
Rafael Leao was next to try his luck for the visitors, but the Portugal international's overhead kick in the 35th minute never really threatened to test Svilar between the home side's sticks.
Reijnders was again denied by Svilar in the 42nd minute, before El Shaarawy fired wide of the target in the closing stages of the first period, with Roma leading 1-0 at the interval.
Reijnders was again at it early in the second period, firing a low shot towards goal from distance, but Svilar made the stop, before Maignan had to deny Dybala down the other end of the field.
Roma had a half-chance to double their lead in the 61st minute when Pellegrini exchanged passes with Lukaku before looking to pick out the bottom corner, but his effort was just wide.
Theo Hernandez headed just wide of the target in the 69th minute, with Milan looking to hit back, before Svilar was once again on hand to deny Reijnders in the 72nd minute.
Milan came close again in the 75th minute, with Svilar managing to turn a cross from Yacine Adli onto the crossbar, before Leao had a goal bound strike blocked from the resulting corner.
Giroud should have levelled for the hosts in the 87th minute, but he struck against the crossbar from close range, and Roma defended impressively in the latter stages to ensure that they would have a lead to protect heading into the second leg.