Turin (Italy): A first-half strike from Mario Mandzukic saw last season's beaten finalists Juventus into the last 16 of the Champions League with a 1-0 win over injury-hit Manchester City.
City, already qualified following their 3-1 win at Sevilla last time out, travelled to Turin looking to secure top spot in Group D as well as avenge their 2-1 defeat to the Bianconeri at the Etihad Stadium in September.
But a second successive defeat to the Italian champions means City now look likely to finish second behind Juve in the group. Juventus are now two points clear before facing Sevilla away next month, when City host Borussia Moenchengladbach.
"Hats off to the lads, they've gifted me qualification with a game to spare," said Juventus coach Massimiliano Allegri.
"It wasn't an easy group. Borussia (Moenchengladbach) had a fantastic last season and Manchester are a technical side with top players.
"It's never easy to win a Champions League game. We've done that, again, while not conceding a goal at home. We're proud of that statistic so the lads deserve all the credit they get."
City manager Manuel Pellegrini complained his defender Nicolas Otamendi was fouled by Mandzukic before the Croatian scored, and, despite Juve missing a host of chances, the Chilean felt the visitors were unlucky.
"I think we were unlucky to lose," said Pellegrini.
"They scored a goal which I think was a foul before Mandzukic finished but the referee didn't blow the whistle. But we had chances and didn't score."
Pellegrini said beating Juventus on their own turf would also be a gauge of his side's Champions League-winning potential, but it quickly became clear their current injury woes would play to Juve's advantage.
City forwards Wilfried Bony, David Silva and Samir Nasri are all still sidelined but the absence of Belgian centre-back and captain Vincent Kompany was most felt as Juventus went two points clear of City ahead of the sides' final games next month.
Juventus, who deployed a 3-5-2 amid injury concerns of their own, survived an early scare when Kevin De Bruyne was allowed to fire a cross into the area from the right following a corner and Fernandinho unleashed a drive that spun just wide with Gianluigi Buffon at full stretch.
Juve were let off again after Giorgio Chiellini got
tangled up with Yaya Toure in the area and Fernandinho pounced, only to flash over from 10 yards out.
But moments later the visitors were stunned when Alex Sandro fired a delightful cross into the path of Mandzukic, who muscled his way past Nicolas Otamendi to finish.
City were briefly left with 10 men when Jesus Navas fell under a challenge from Sandro, and Juventus brazenly capitalised.
- Hart injured -
Sighting Stephan Lichtsteiner's run, Sandro promptly delivered and when the Swiss international headed into the path of Mandzukic, the Croatian's first-timer brought a great reflex save from Joe Hart.
After Toure's tame shot on the spin went wide of Buffon's post, at the other end Hart produced another great stop with his arm to thwart Lichtsteiner after he was sent through on the right side by Mandzukic.
Juve started the second half brightly but City would go on to scare the hosts on several occasions.
Fernando rose high above the Juve defence at a corner to fire in a header which Buffon turned onto the post and then smothered while under pressure from Martin Demichelis.
But in open play, Juve were a class apart.
Alvaro Morata replaced Mandzukic on 54 minutes and moments later the Spaniard sent a chip towards the far post that Paulo Dybala turned onto the upright.
Hart was kept busy for the remainder of the half, before being replaced by Willy Caballero with 10 minutes remaining after suffering a suspected injury.
The England 'keeper kept his composure to stop Morata just inside the area after the Spaniard had dribbled his way past two players and into a scoring position while ignoring Dybala to his left.
At the other end Raheem Sterling, who had replaced Sergio Aguero on 69 minutes, came close when his first-time effort from a tight angle spun just wide of Buffon's far post.