The Blues’ top scorer ran onto Ilkay Gundogan’s pass with just two minutes left before firing high into the roof of the net from 10 yards to claim the only goal of an otherwise tepid game.
The victory means City’s relentless winning streak – now standing at 17 and counting – continues.
Though Pep Guardiola made seven changes to the starting line-up, it was a side packed with quality.
Skippered by Sergio Aguero, the Blues were looking to maintain a 100% Group F record against a team yet to register a point.
The first 20 minutes passed without any incident of note, with the Blues a little flat and unable to make much headway.
The first real talking point came on 26 minutes when a rare misjudgement from Ederson almost allowed Jean-Paul Boetius to nick the ball off his toes, but a desperate lunge by the Brazilian rescued a situation that could easily have resulted in a red card and maybe a goal for Feyenoord had he been a fraction slower.
City gradually warmed to the task with Aguero and Sterling both going close around the half-hour mark.
Feyenoord then went close on 36 when good footwork by Sam Larsson saw the winger cut inside and curl a low drive inches past Ederson’s left-hand post with City keeper beaten.
Even Kevin De Bruyne, who sent in a couple of tempting crosses could inspire the hosts who went in at the break goalless.
The Blues were brighter after the re-start with Bernardo Silva’s cross sliced inches over by a Feyenoord defender, then Aguero fired a couple of shots over the bar in the space of a few minutes.
A yellow card for De Bruyne on the hour means the Belgian is suspended for the trip to Shakhtar and his last action of the night three minutes later was to send a low shot fizzing past the post before being replaced by Gabriel Jesus.
Yaya Toure then fired a free-kick inches wide before Ederson pushed a fierce shot from Steven Berghuis over the crossbar.
It seemed a goal was coming and Aguero’s spin and shot from eight yards rasped the side-netting without luck as the clock ticked towards the last 15 minutes.
The appearance of Phil Foden on 75 lifted the crowd with the Stockport youngster becoming the Blues’ youngest ever Champions League player in the process.
But just as it seemed City's win streak was coming to an end, Ilkay Gundogan played in Sterling who fired high past Brad Jones to claim a dramatic late winner for the Blues.
Ederson’s risky tackle on the edge of his own box was correctly judged legal by referee Ivan Kruzliak – more eager officials might have missed the Brazilian’s feint touch and issued a red card.
City Matchday App star man: Raheem Sterling.
Energetic performance by the City winger who did all he could to find a way through the Feyenoord defence – and finally did in the final moments.
What it means…
City win Group F and sit in pole position with 15 points from five games.
Napoli’s 3-0 win over Shakhtar means the Ukrainians must take at least point against the Blues to guarantee a spot in the Round of 16 – a defeat and a win for Napoli would see the Italians progress instead.
City travel to West Yorkshire to take on Huddersfield Town on Sunday, kick-off 4pm, looking to preserve the eight-point gap at the top of the Premier League and record an 18th consecutive victory.
Then it’s back to the Etihad the following Wednesday as City host Southampton.
Stats and milestones
Phil Foden became one of the Blues’ youngest ever player to feature in a Champions League game after replacing Yaya Toure on 75 minutes.
City have now won 17 games in a row in all competitions – (yet another) new Club record
The Blues are now undefeated in 25 games.