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.
What does it mean? Missed opportunity for Lille
Both sides have their destiny in their own hands, but Sparta Prague are just a point behind Milan in third place after hammering sorry Celtic 4-1.
Boss Stefano Pioli, self-isolating at home after testing positive for coronavirus, would not have been hugely concerned by his side's display given Milan made changes after an impressive win at Napoli last weekend.
Lille had 13 shots to Milan's four, with captain Donnarumma producing a fine first-half stop to deny the dangerous Araujo.
Araujo a constant menace
Brazilian winger Araujo was a real threat cutting in from the right and could have been Lille's match-winner.
Comfortable on the ball with a sweet left foot, the 24-year-old former Sao Paulo man had three shots - two of which were on target - and made two key passes.
All 20 of Araujo's successful passes came in the Milan half in an eye-catching display.
No dream bow for Hauge
A first Milan start did pan out how Hauge would have hoped.
The 21-year-old Norwegian should have provided an assist for Rebic to open the scoring and only five of his 11 passes were completed, while he did not register a solitary shot or provide a telling cross.
Milan return to San Siro to face Fiorentina on Sunday, while Lille are on the road at Saint-Etienne on the same day in Ligue 1.