The Ligue 1 side had not taken a single point from their first four matches and had a negative goal difference of 12 going into the clash against Belarussian champions.
But they scored twice in the first half through Djibril Sidibe and Gianni Bruno and held on without conceding despite Sidibe being sent off with 15 minutes remaining.
The game started scrappily, with a series of early fouls spoiling the flow during the opening minutes.
Lille managed to put that behind them to open the scoring in the 14th minute.
BATE played their own part in the goal, Denis Polyakov clearing but failing to lift the ball beyond the waiting Sidibe, who bent the ball over goalkeeper Andrey Gorbunov and into the top corner from the edge of the area.
Lille showed the value of clinical finishing in the 31st minute when Bruno found the target on his full Champions League debut.
Once again Polyakov was culpable for BATE, allowing Lucas Digne to go past him with ease on the left wing before cutting the ball back across goal for Bruno for a close-range finish.
Steeve Elana saved from Alexander Volodko after 38 minutes to keep the scores level at the break, with Ronny Rodelin and Bruno both missing fine chances for the visitors.
There was less cohesion after the break, the late flurry of chances that ended the first disappearing.
One wayward Rodelin shot was the best either side could manage as the defenders started to get a foothold in the game.
Sidibe's red card threatened to open things up again for the hosts, with a pair of yellow cards in the 48th and 75th minute responsible for his departure.
Indeed, there was just one standout chance for Borisov to score with Roman Vasilyuk getting a close range shot away in the 90th minute only for Marko Basa to intercept.