Manchester City survived anxious moments before the power of their attacking play secured another Champions League win against Viktoria Plzen at Etihad Stadium.
The result is unlikely to help City hit top spot in Group D - with a three-goal margin of victory required in their final game against holders Bayern Munich in the Allianz Arena.
But City once again demonstrated their capacity to score goals which will make them very dangerous opposition as they enter the knockout phase for the first time, having scored 41 goals in 10 games at home this season.
Sergio Aguero put them ahead from the spot but Tomas Horava's spectacular strike drew Plzen, without a point in the group, level before half-time.
Samir Nasri restored City's lead before Stanislav Tecl took advantage of more defensive slackness from City to equalise once more.
Manchester City have scored 41 goals in 10 home games this season:
Won 4-0 v Newcastle
Won 2-0 v Hull City
Won 4-1 v Man City
Won 5-0 v Wigan
Lost 1-3 v Bayern Munich
Won 3-1 v Everton
Won 7-0 v Norwich
Won 5-2 v CSKA Moscow
Won 6-0 v Tottenham
Won 4-2 v Viktoria Plzen
City then stepped up a gear with substitute Alvaro Negredo and Edin Dzeko on target to make it an ultimately satisfactory night for manager Manuel Pellegrini.
And it was a good night for recalled goalkeeper Joe Hart, who was blameless for Plzen's goals and distinguished himself with a couple of fine saves when they did get through.
Yaya Toure emerged as a substitute and picked up an injury-time booking that rules him out of the trip to Bayern - but which City may privately see as a blessing as it assures his availability for the last 16.
As expected City restored Hart in goal and also started with Micah Richards and Joleon Lescott, who have been very much on the undercard for manager Pellegrini this season.
Nasri almost took the early honours with a fierce 25-yard shot that struck the bar - although he should have done better than steer a close-range effort wide after he had been set up by Aguero.
For all their usual attacking invention, City were careless and vulnerable at the back as Plzen had opportunities, with adventurous defender Frantisek Rajtoral bursting into the area only to pull his shot wide.
Rajtoral was involved as City went ahead from the penalty spot after 33 minutes. He felt he was harshly penalised as Aguero sent in a cross - but the Argentine was not complaining as he scored easily.
Plzen, with nothing but pride to play for, were showing ambition and it was no surprise when they equalised two minutes before the break, Horava punishing Joleon Lescott's retreat with a thumping drive that gave Hart no chance.
Aguero was replaced by Jesus Navas at half-time and City quickly attempted to reassert their authority, Fernandinho bringing an athletic save from keeper Matus Kozacik just after the hour.
Nasri made the breakthrough after 65 minutes, showing great balance and awareness to steer home a volley after good work by substitutes Navas and Toure.
City, however, were still poor in defence and Plzen were level once more four minutes later as Tecl found room in the area to shoot low past Hart.
Pellegrini made another change when he sent on Negredo for Nasri - and the switch brought an almost instant reward as the Spaniard turned in a simple finish from Navas's low cross.
Right-back Rajtoral had been one of Plzen's biggest threats and Hart did well to block as he broke into the area once more.
Dzeko had struggled to make an impact, occasionally to the obvious frustration of City's fans, but he ended the night on a high note and confirmed the win by heading in from James Milner's cross.
You can catch up with tonight's Champions League action by checking out a photo album on the
BBC Sport Facebook album.
- 01 Hart
- 02 Richards
- 13 Kolarov
- 14 Javi García
- 26 Demichelis Booked
- 06 Lescott
- 07 Milner Booked
- 25 Fernandinho (Yaya Touré - 64' Booked )
- 10 Dzeko
- 16 Agüero (Jesús Navas - 45' )
- 08 Nasri (Negredo - 75' )
- 05 Zabaleta
- 09 Negredo
- 15 Jesús Navas
- 30 Pantilimon
- 38 Boyata
- 42 Yaya Touré
- 52 Huws
- 01 Kozácik
- 27 Rajtoral
- 04 Hubnik
- 07 Horava
- 28 Cisovsky Booked
- 21 Prochazka
- 11 Petrzela (Kovarik - 74' )
- 10 Horváth
- 09 Tecl
- 26 Kolár (Bakos - 86' )
- 12 Duris (Wágner - 90' )
- 02 Hejda
- 13 Bolek
- 14 Reznik
- 15 Wágner
- 19 Kovarik
- 23 Bakos
- 24 Pospisil