The Ligue 1 leaders' attacking football was too much to handle for Nice and Lille prevailed through goals by Eden Hazard and Gervinho either side of the interval.
They will take on either Ligue 2 side Angers or Paris St Germain, who play on Wednesday, in the final at the Stade de France on May 14.
The result was also a morale boost for the northeners, who saw their Ligue 1 lead over Olympique Marseille cut down to one point after they failed to win their last two league matches.
Top ref given suspended ban
Lille took a knock in the 36th minute when holding midfielder Florent Balmont went off after straining a ligament in his thigh.
Balmont's injury, however, was a blessing in disguise as it took his replacement Hazard only eight minutes to make an impact.
The Belgian prodigy, twice voted the league's top prospect, played a fine one-two with Ludovic Obraniak and unleashed a fierce shot from the edge of the box that went under the bar after taking a slight deflection off a Nice defender.
Gervinho made it 2-0 a minute into the second half when he collected a defence-splitting pass from Obraniak before dribbling past Nice keeper Lionel Letizi and tucking the ball into an empty net.
The hosts reacted, with Gabon striker Eric Mouloungui's header hitting Mickael Landreau's crossbar in the 56th minute, but Lille weathered the storm.
Marseille close on Lille, Arles go down
Meaux suffer heartbreaking defeat in Coupe de France