(CNN) -- Liverpool have qualified for the last 32 of the Europa League as winners of Group K, despite being held to a dour 0-0 draw by Dutch side Utrecht on Wednesday.
With manager Roy Hodgson under increased pressure to get results after a poor Premier League season so far, there was not much for the Anfield crowd to get excited about on a freezing night in north-west England.
With Hodgson choosing to play a host of reserve players, stars like Fernando Torres, Steven Gerrard, Dirk Kuyt and Lucas Leiva were all missing from the line-up.
However, Utrecht failed to take advantage of the weakened side and they finish bottom of the group, after drawing five and losing the other one of their six matches.
There was more excitement in the other group game as Serie A high-fliers Napoli secured second place ahead of Steaua Bucharest, after beating their Romanian opponents 1-0 courtesy of a last-gasp goal from Uruguayan striker Edinson Cavani.
Group J promised to be the most competitive, and so it proved, with runaway Bundesliga leaders Borussia Dortmund going out of the competition following a 2-2 draw at Sevilla.
The German side needed a win in Spain to reach the knockout stages, but two quickfire first half goals from Romaric and Frederic Kanoute was to prove their undoing.
Paris St Germain finished as group winners, and retained their unbeaten record, despite being held 1-1 at Karpaty Lviv, who earned their first point with that draw.
CSKA Moscow failed to finish the group stage with a maximum 18 points from their six Group F games, after they were held 1-1 at Sparta Prague in their final match.
However, the Russian side still finished top with an impressive 16 points, with Sparta taking the other qualifying spot.
Italian side Palermo failed to qualify despite ending their group campaign with a 1-0 win at Swiss side Lausanne.
Spanish side Villarreal have gone through as winners of Group D after a double from Giuseppe Rossi gave them a 2-1 victory at Belgian side Bruges, who finish bottom, without a win.
Villarreal are joined in the last 32 by Greek side PAOK Salonika, who achieved a superb 1-0 win at Dinamo Zagreb in the other match in the group.
A win would have put the Croatian side through at PAOK's expense, but a goal on the hour from Dimitris Salpingidis proved enough for the visiting side.
Porto and Besiktas had already qualified from Group L and the pair confirmed their superiority by winning their final matches in the least competitive of the 12 groups.
Portuguese side Porto go through in first place after a 3-1 win over CSKA Sofia, while Besiktas of Turkey finished second following their 2-0 success over Rapid Vienna.
Group E had also been decided in advance of Wednesday's final matches, but top spot was still up for grabs.
That eventually went to Dynamo Kiev, despite the Ukrainians being held 0-0 at home to bottom side FC Sheriff.
Kiev are joined by BATE Borisov, but the Belarussians suffered a disappointing 3-0 defeat at AZ Alkmaar in their final match.