Jonathan Bamba's strike kept Lille top of Europa League Group H as sloppy Milan had to settle for a 1-1 draw with at Stade Pierre-Mauroy.
Second-placed Milan made the trip to France in search of revenge after Yusuf Yazici's hat-trick gave Lille a 3-0 victory at San Siro earlier this month, the Serie A leaders' first defeat since March.
Samu Castillejo put the Rossoneri in front just after half-time, but Bamba capitalised on some poor defending to keep the Ligue 1 high-fliers a point clear of Milan at the top of the group with two games remaining.
Stand-in Milan boss Daniele Bonera, who was without injured talisman Zlatan Ibrahimovic, could not have any complaints as Lille deserved at least a point.
Milan were intent on playing out from the back and Sandro Tonali almost gifted Lille an opening goal when he was robbed in possession by Benjamin Andre before Yazici fired wide early on after the two sides paid tribute to Diego Maradona with a minute's silence.
The Rossoneri ought to have been in front 24 minutes in, but Jens Petter Hauge - making his full debut - inexplicably failed to pull the ball back to set Ante Rebic up for a tap-in.
Lille looked increasingly dangerous and the lively Luiz Araujo was twice denied by Gianluigi Donnarumma, the second a brilliant stop diving to his right.
It was Milan who drew first blood less than a minute into the second half, though, Tonali sending Rebic clear and the Croatia forward unselfishly squaring for Castillejo to tuck home from close range.
Yazici was withdrawn just after the hour-mark and Lille were level soon after, with Milan paying the price for some slack defending.
Milan only had themselves to blame when they were caught napping from a quick throw-in and Jonathan David set up Bamba, who fired home from inside the penalty area.
Both sides pushed for a winner but neither had the quality to secure maximum points.