The Rossoneri, who were beaten 1-0 at home by Atletico Madrid in the first leg of their last-16 clash on Tuesday, took a 12th-minute lead against Samp through Adel Taarabt.
Adil Rami made it 2-0 before the hour mark.
The hosts shot themselves in the foot when former AC Milan striker Maxi Lopez was sent off 18 minutes from time for a second yellow card, both bookings for dissent.
Lopez had only come into the match in the 56th minute.
The win is Milan's second straight in the league and has lifted the Rossoneri to ninth place, five points behind city rivals Inter Milan, who are fifth.
The loss was Samp's first at the Luigi Ferraris stadium since November 2 and dropped the Blucerchiati to 13th place.
AC Milan coach Clarence Seedorf was forced to field a weakened side with nine players out injured, including the team's leading scorer Mario Balotelli and regular goalkeeper Christian Abbiati.
Taarabt, who took Balotelli's place in Milan's attack, had the first chance of the game in the second minute.
His bullet strike from just outside the area forced Sampdoria goalkeeper Junior Costa to dive to his right to clear.
Milan went ahead shortly after.
Costa did well to clear clear Taarabt's poweful header but the striker reacted quickly to tap in the rebound.
The home side failed to put a good move together in the first half.
Riccardo Sapponara twice had the chance to double Milan's lead before half-time.
His central shot was kept out by Costa while shortly after, his powerful volley went just over the crossbar.
Samp showed more determination after the re-start and four minutes into the second half, Angelo Palombo's 30-yard attempt went over the bar.
Milan extended their lead in the 58th minute when Rami jumped higher than his marker and headed a corner-kick past Costa.
Samp first tested Marco Amelia in the 81st minute when Renan's cross spotted Citadin Eder in the box and his close-range shot was met by a fine save from the AC Milan goalkeeper.
Milan host Serie A leaders Juventus next while Samp visit Torino.