Pep Guardiola's side was made to wait until the 88th minute before they could break the deadlock against Feyenoord
Champions League: Man City snatches win while Liverpool collapses
Manchester City secured first place in Champions League Group F after Raheem Sterling's late strike snatched a 1-0 win over Feyenoord at the Etihad Stadium on Tuesday.
City, who were already assured of a place in the last 16, fielded a surprisingly strong line-up but struggled to find the kind of fluency that has characterised their performances this season.
But two minutes from the end, Raheem Sterling grabbed the winner, slotting home after a smart exchange of passes with Ilkay Gundogan.
Sam Larsson had earlier twice gone close for Feyenoord while Guardiola gave debuts to teenagers Phil Foden and Brahim Diaz from the bench.
Sterling's strike means City have now won their last 17 games in all competitions, including a victory on penalties over Wolverhampton Wanderers in the League Cup.
"Of course winning is better than not winning," said Guardiola.
"In the first half, we could do better. But sometimes it's difficult. You win a lot of games, you already qualify.
"You want to finish first, but you have another chance to finish first. We didn't have the right tension to play.
"But that is normal. In the end we scored a fantastic goal from Rash, excellent pass from Gundogan, and we were able to win."
Five-time champions Liverpool threw away a last-16 spot as Sevilla roared back from three goals down at half-time to draw 3-3.
Liverpool looked to be cruising into the knockout stage for the first time since 2008/09 when Roberto Firmino and Sadio Mane both scored from flicked-on corners.
A rout similar to the 7-0 thrashing of Maribor in Slovenia earlier in the group phase looked on the cards when Firmino tapped in number three, but Sevilla staged a stirring second-half comeback.
Wissam Ben Yedder beat Alberto Moreno to nod in a free-kick, before slotting in a penalty.
And Argentinian Guido Pizarro struck in the third minute of injury-time to complete the fightback and leave Jurgen Klopp's visitors deflated.
"Fantastic first half and in the second half we made the mistake that we didn't continue playing football," said Klopp.
"We have to control the game with the ball and we didn't play football."
Elsewhere in Group E, Russian champions Spartak Moscow saw their chances hit by an injury-time equaliser in a 1-1 home draw with Maribor.
Sevilla will book a last-16 spot for the second straight season if they can win in Maribor on the final matchday in two weeks' time, while Liverpool have to avoid defeat at home to Spartak.
Also on Tuesday, Cristiano Ronaldo scored twice as holders Real Madrid thrashed APOEL 6-0 in Cyprus to reach the Champions League last 16.
Zinedine Zidane's Real bounced back from their 3-1 loss at Tottenham Hotspur last time out by crushing APOEL, with four of the goals coming before half-time.
"It was a very good evening for us," said Zidane.
"We're on the right track. We're doing things well and we're building in strength. It's never easy but it was a complete display and we scored quickly."
The record 12-time winners had to wait until the 23rd minute to take the lead through Luka Modric, but a run of five goals in 15 minutes either side of half-time sent them through in style.
Karim Benzema put worries about his recent form to bed with a double either side of a Nacho effort, before Ronaldo got in on the act after the break.
The Portuguese climbed highest to power a header into the corner from an inviting Marcelo cross.
And the 32-year-old, who has only scored once in eight La Liga appearances this season, scored his eighth Champions League goal this term with an excellent left-footed finish from a tight angle.
Meanwhile, Tottenham sealed top spot in Group H with a come-from-behind 2-1 victory at Borussia Dortmund.
Pierre-Emerick Aubameyang put the hosts ahead, but with Real's thumping win sending Dortmund out, Spurs levelled through Harry Kane and Son Heung-Min curled in a 76th-minute winner.
Lorenzo Insigne inspired Italian Serie A leaders Napoli to a 3-0 victory over Ukrainians Shakhtar Donetsk that kept their hopes alive in Group F.
Winger Insigne made the difference with a magnificent individual effort in the 56th minute, dancing past two defenders before curling into the top corner from 25 yards out.
Further late goals from Piotr Zielinski and Dries Mertens gave their goal difference a boost.
Turkish champions Besiktas reached the last 16 for the first time in 31 years, as a goal from Talisca secured a 1-1 draw with Porto in Istanbul to wrap up top spot in Group G.
Last season's semi-finalists Monaco are out of Europe altogether, after a woeful performance and 4-1 home loss to RB Leipzig.
The French champions saw the German tournament debutants race into a 3-0 lead through a Jemerson own goal and a Timo Werner brace, and although Radamel Falcao pulled one back, Naby Keita rounded off a stunning win that keeps Leipzig in the hunt.
Leipzig need to better Porto's result on the last matchday. The Bundesliga runners-up host Besiktas, while two-time European champions Porto take on Monaco.