The home side advanced to the next round despite a loss on Tuesday.
Mikel San Jose gave Athletic Bilbao a surprise 1-0 UEFA Champions League win at Shakhtar Donetsk, a result that soured a positive day for the home team.
Shakhtar qualified for the round of 16 in Europe's premier club competition after Porto won 3-0 at BATE earlier on Tuesday.
But a poor home defeat against a Bilbao side that had collected just one point from its first four Group H matches means Shakhtar cannot finish first in the pool - regardless of what happens against Porto next month.
Defender San Jose scored the game's only goal in the 68th minute, making the most of slack marking to flick Benat Etxebarria's free kick into the roof of the net for Bilbao, which moved above BATE and into third.
Shakhtar was desperately unlucky not to win a late penalty, though, after Mikel Balenziaga clearly handled the ball to keep out a late shot.
The home side was exceptionally sluggish throughout the contest in Lviv and wasted the few chances it created in front of goal.
Much of the pre-match attention surrounded Luiz Adriano, who was out to make Champions League history and be the first player to score 10 goals in the competition's group stages.
The Brazilian entered the match with nine - eight of which have come against BATE - but like his teammates, he was frustrated by a stubborn Bilbao defense.
Luiz Adriano will have no further chance to claim the record, after a second-half yellow card - for an arm across San Jose - saw him banned for the trip to Portugal, a match that captain Darijo Srna will also miss through suspension after a late booking.
Bilbao's pressing and excellent use of the offside trap kept Shakhtar at bay in the first half, but the home side did have a great chance to take the lead in the seventh minute, only for Alex Teixeira to shoot at Gorka Iraizoz when sent through on goal by Fernando.
Bilbao - which rested top scorer Aritz Aduriz from the start - offered a reminder of their threat in the 25th minute when San Jose nodded just wide, while another Athletic defender, Xabier Etxeita, was forced off with injury and replaced by Carlos Gurpegui just after the half-hour mark.
Douglas Costa could only shoot wide after a storming run on the stroke of halftime and although the same man was on target after the break, Iraizoz was equal to the task.
Shakhtar turned the screw, ever so briefly, but Luiz Adriano and Taison both wasted good chances, the former half-volleying wide from close range.
The ineffectual Taison hit a tame effort at Iraizoz and Shakhtar's malaise was summed up perfectly by Costa's free-kick attempt in the 64th minute that sailed well over the goal.
Ernesto Valverde began to think his Bilbao side could produce an upset and introduced Aduriz for Markel Susaeta, and although that change did not bring about the opener, the visiting side was soon celebrating.
Instead it was San Jose - who posed a threat at set pieces throughout the match - who netted for Bilbao, as he, completely unmarked, produced a smart finish from Benat's set piece.
Bilbao looked the more likely to score again, as another Benat free kick went close, while Iker Muniain only just shot wide to end a neat move from the visiting team.
But for Bilbao - which simply did the basics right - one goal was enough against a poor Shakhtar outfit, which was left to bemoan an oversight from the officials following Balenziaga's blatant handball.