Josef Sural gave Liberec a first-half lead which was added to by Michael Rabusic.
Junior Seba pulled a goal back but Liberec nonetheless leapfrogged Freiburg to claim second place in Group H.
The opening quarter-hour was lacklustre, with Estoril's Fernandes Gerso unable to direct Javier Balboa's cross goalwards and Joao Pedro smashing a free-kick into the wall.
Liberec burst into life in the 17th minute when Martin Frydek's excellent drive was blocked by Elvis Babanco and from the resulting corner, the Czech side took the lead.
Sergiy Ribalka delivered from the right, Jirri Fleisman headed back across goal and Sural arrived at the right time to find the top corner.
Another Balboa cross was again headed powerfully but waywardly by Gerso before Estoril lost goalkeeper Vagner to injury, with Ricardo Ribeiro taking his place.
Balboa's next pinpoint delivery found a more adept target in Joao Pedro, but his excellent headed effort was saved by Lukas Hroso and Liberec retained their lead going into half-time.
Hroso saved Diogo Amado's ambitious effort early in the second half while Ribeiro had his first test when he gathered Frydek's 25-yard blast.
Joao Pedro sent a superb 30-yard shot dipping just over the bar for Estoril, but it was Liberec who struck again with 20 minutes left.
David Pavelka slipped the ball into the box and Rabusic poked the ball high past Ribeiro.
With Freiburg losing at home to Sevilla, the 2-0 scoreline made Liberec's qualification look certain - even when Estoril pulled a goal back with eight minutes remaining.
Babanco crossed from the left and Junior Seba stroked the ball past Hroso from 12 yards.
Seba was denied an equaliser when Hroso repelled his header and Balboa and Babanco saw shots blocked, though even a draw would have been enough for Liberec.