Juventus booked their place in the last 16 of the Champions League by edging to a 1-0 victory over Manchester City in Turin.
The Bianconeri took the lead when Mario Mandzukic arrived to guide home Alex Sandro's delivery from close range.
Sergio Aguero almost pulled the visitors levelled on the stroke of half time, but after latching onto a poor back pass, his attempt was saved by Gianluigi Buffon.
After the break, Fernando saw his header tipped onto the post and Raheem Sterling wasted another chance for the Citizens in the closing stages, as Juventus held on to move top of the group.
Find out how the action unfolded below.
Hello everyone! There are just a couple of games left in the group stages of the Champions League and everything is still to play for. Two teams who harbour hopes of going all the way are in action in Turin this evening, as Juventus go head to head with Manchester City.
The Citizens booked their spot in the knockout stages last time out, as they recorded an impressive 3-1 win at Sevilla. Another away win tonight would see them confirm top spot in Group D, and enable them to miss out on a tricky European tie in the New Year.
Meanwhile, Juventus can join City in the last 16 by claiming a win this evening, although they will also be assured of their progress the knockout rounds if Sevilla fail to beat Borussia Monchengladbach in tonight's other group match.
JUVENTUS XI: Buffon, Barzagli, Bonucci, Chiellini, Lichtsteiner, Sturaro, Marchisio, Pogba, Alex Sandro, Mandzukic, Dybala
MANCHESTER CITY XI: Hart, Sagna, Demichelis, Otamendi, Clichy, Fernando, Toure, Fernandinho, Navas, De Bruyne, Aguero
JUVENTUS SUBS: Neto, Rugani, Evra, Lemina, Cuadrado, Zaza, Morata
MANCHESTER CITY SUBS: Caballero, Maffeo, Adarabioyo, Kolarov, Delph, Celina, Sterling
There we have our two teams for this evening's European clash. Let's start with a look at Juventus, who have made two changes to their starting lineup. Alex Sandro and Leonardo Bonucci are the players who come in for Patrice Evra and the suspended Hernanes, while Paulo Dybala and Mario Mandzukic are the chosen forward pairing.
City, meanwhile, have decided to make three alterations to the team that were thumped by Liverpool at the weekend. Nicolas Otamendi, Gael Clichy and Fernandinho all return to the starting XI, with Kevin De Bruyne and Sergio Aguero expected to do damage in the attack.
So, following a number of struggles over the years in Europe, things are running a little more smoothly for City as they have already booked their spot in the knockout stage of this season's Champions League. It did not appear to be so easy back in September, though, as they lost their group opener to Juventus.
However, they bounced back by claiming a late win over Monchengladbach in their next outing and they then repeated the trick against Sevilla, with Kevin De Bruyne netting stoppage-time winner in a 2-1 victory at the Etihad.
Things got even better for Manuel Pellegrini's side as they travelled to Spain to face the Europa League holders again, and they raced into an early two-goal lead. Sevilla threatened a comeback when they halved the deficit, but Wilfried Bony's goal helped seal the win and earn them a place in Europe after the New Year.
It is not just in the Champions League where they have delivered this season, as they are currently third in the Premier League. However, they have not won their last two games in the top flight and were thumped 4-1 by Liverpool on Saturday evening.
Hoping to join City in the knockout rounds are Juventus, who will seal their progress with all three points this evening. They have shown their best form in Europe this season, following an indifferent start to their Serie A campaign.
They began their journey to return to the final of the Champions League for the second season running by coming from behind to beat City in their opening group match and they followed that up by claiming a 2-0 win over Sevilla, a result that could still prove vital in the head-to-head records between the teams.
Massimiliano Allegri and his players saw their progress stall somewhat in their next European outing, as they could only manage a goalless draw with Monchengladbach. They took on the Germans again two weeks later and were a goal down before Stephan Lichtsteiner's superb volley levelled the scores just before half time.
After the break, Hernanes saw red for a reckless challenge that left his team with 10 men, but they managed to cling on for a point. It means they are now five points clear of Sevilla in the group, and even if they fail to win tonight, then they would just need to avoid a defeat by two goals or more against the Spaniards in their last group game.
Of course these two teams met just a few weeks ago in Manchester and it was the hosts who took the lead when Giorgio Chilleini turned the ball into his own net. However, Mario Mandzukic struck to level the scores, before Alvaro Morata fired in a superb strike to give the Italians a 2-1 win.
Juventus will also be keeping a close eye on the events over in Germany, as Borussia Monchengladbach play host to Sevilla. The Germans are out, but their opponents can still make it through to the last 16 with a victory if Juve fail to beat City. You can follow all of the action from that clash right here.
Following tonight's European tie, City will return to Premier League action with a meeting against Southampton on Saturday afternoon. Here at Sports Mole, we are giving away two tickets for that match at the Eithad, and you can find out all of the details on how to enter by checking out the competition page.
As for Juventus, the Italian champions have a tricky looking spell coming up. They are away in their next two league games against Palermo and Lazio, before making the trip to Spain to face Sevilla, in what could be a crunch final group match, depending on how tonight goes for them.
The players are out on the pitch in Turin and there is a great atmosphere inside the ground. It has all the ingredients of a great match, so let's hope for plenty of action and talking points when we get started in around three minutes.
KICKOFF! We are underway in Turin!
SHOT! Juventus work the first opening of the match when Pogba plays a superb ball from the halfway line to set Dybala free on the left-hand side of the box. The Argentine is at a tight angle and decides to take the shot on, but he slices his attempt and the ball ends up going well wide of the target.
CHANCE! Since that early effort from Dybala it is City who have begun to dominate and they win a corner after a long spell on the ball. The set piece eventually breaks to Fernandinho on the edge of the box, who fires a low strike through a crowd of players just a few yards wide of the far post.
CHANCE! This must go down as a chance for someone of Mandzukic's quality. The Croatian is picked out unmarked inside the box by Marchisio's clever cross, but he can't quite sort himself out in time and heads well wide of the target.
There has been some great football played by each team this evening and they are taking it in turns to dominate possession. It is all very easy on the eye and I would be very surprised if we didn't seen any goals at some point before the end of the night.
City have got to be very pleased at the way they have started tonight's match, as they are playing the ball around with ease inside the Juventus half. It does help that they have qualified for the last 16, as there is a real freedom in the way that they have been able to approach the game.
It's almost brilliant from Juventus as Pogba produces an outstanding piece of skill to flick the ball past the defence and through to Dybala. However, the Argentine was clearly standing a few yards offside as he received the ball and fired over the top.
CHANCE! What a huge chance this is for City to take the lead. Juventus fail to deal with a cross into their box and it lands perfectly at the feet of Fernandinho. The Brazilian has a clear shot on goal from just a few yards out, but somehow he blazes well over the top, when it looked easier to at least hit the target.
GOAL! Juventus 1-0 Manchester City (Mario Mandzukic)
City are quickly punished for not taking their chance moments ago as Juventus open the scoring. Mandzukic is the player who finds the net, as he shrugs off the challenge of Otamendi to meet Sandro's peach of a cross, before tucking a low effort past the stranded Hart.
The Citizens will feel hard done by at conceding, as they were looking a real threat, but a moment of quality from the hosts has made the difference. Mandzukic will take much of the acclaim, but it was a wonderful cross that Sandro delivered from the left to set it up.
Sandro continues to look a real threat for Juventus and he skips past a couple of tackles and to the byline before standing up a cross that is well headed clear. Moments later De Bruyne is almost in behind for City, but Bonucci is back to cover and prevent the Belgian from having a clear sight of goal.
City are having lots of trouble down their left and this time Pogba bursts into space and drills a dangerous low cross to the back post. He fails to pick out any teammates, but a poor attempt at a clearance by Clichy almost gives them another chance, before the Frenchman finally gets the ball away.
SAVE! Juventus are really finding their form now and they almost grab a second when Mandzukic is found inside the box by Lichtsteiner's low cross. The Croatian then fires in a powerful strike that is heading towards the bottom corner until Hart springs across his line to tip the ball behind.
SHOT! This would have been an outrageous goal from Toure had it found the net. The Ivorian attempts a first-time curling effort into the far corner from well outside the box. The shot ends up heading only a few inches over the bar, but Buffon never looked at all worried that it would drop into the net.
UPDATE! Some big news coming in from tonight's other Group D match, as Lars Stindl has given Moenchengladbach the lead over Sevilla. If it stays that way, then Juventus will be going through to the last 16 this evening with a game to spare.
YELLOW CARD! Fernandinho picks up the first booking of the evening for a poor late tackle on Marchisio.
While you would not be surprised by another goal before half time, there doesn't look to be anything on the cards at the moment. The game has become slightly fractured in recent minutes, with both teams committing a number of fouls.
SHOT! Half-a-chance for City as Toure takes down the ball well inside the box, before turning and dragging a low shot wide of the post. He will be disappointed that he couldn't make cleaner contact with the ball, as the build up was promising from his side.
CHANCE! Down the other end of the pitch Juve always look a threat on the counter and Lichtsteiner shows great strength to burst past his marker and into the box from the right. He keeps his run going and finally gets into a shooting position, but with Hart closing him down quickly, he can only guide an effort into the side netting.
CHANCE! What a horrific mistake this is from Marchisio, who inexplicably plays a terrible back pass straight to Aguero. The Argentine looks favourite to score and bring City level, but Buffon rushes off his line to make a fantastic block and keep the Old Lady in front.
HALF-TIME: Juventus 1-0 Manchester City
That's it for the first half, where Juventus have taken a 1-0 lead into the break. A composed finish from Mario Mandzukic is what separates the teams, but City have had plenty of chances to score a goal of their own, in what has been a very entertaining game.
The Citizens have actually seen more of the ball than Juventus and they racked up 56% of the possession in the opening 45 minutes. They have also had seven shots on goal, compared to five from their opponents, but only one of their attempts has found the target.
As I mentioned earlier, Borussia Monchengladbach had taken the lead over Sevilla in the night's other Group D fixture. They have managed to take their advantage into the break, meaning that Juventus are going through to the last 16. Of course it is a massive goal for the Germans, who will now move ahead of Sevilla in the race for a Europa League spot, a competition that the La Liga side have won for the previous two seasons.
RESTART! Juventus take the kick off and get the second half started!
Lots of possession for the hosts in the early stages of the second half, but no clear chances yet for either side. We could also see a few changes if the scoreline stays the same, with City perhaps most likely to look to their bench first.
SHOT! A neat passing move from Juventus sees Marchisio receive the ball in plenty of space around 25 yards from goal. The midfielder then gets the ball out his feet and fires in a powerful drive, but it is hit straight at Hart, who has no problems making the save.
CHANCE! City come within inches of taking the lead as Fernando rises highest to meet a corner, before powering in a header that is tipped onto the post by Buffon. Toure is in quickly to try and slot in the follow up, but the keeper is up quickly to smother the ball and keep the Ivorian out.
SUB! It's Juventus who make the first change, as Morata comes on to replace the struggling Mandzukic.
OFF THE POST! How on earth have Juventus not scored here? Morata is quickly into the action as he races onto a ball over the top and chips a strike beyond Hart and towards the far corner. The ball doesn't quite drop into the net, but it lands perfectly for Sturaro who dives in and turns an attempt onto the post from just a couple of yards out.
SUB! City are going to make their first change, as Delph comes on to replace Fernandinho.
We've just seen a shot of Mandzukic on the touchline, who seems to have picked up a groin injury. There is also fears surrounding Dybala, who has been down for the past couple of minutes after going down without any contact from a City player.
CHANCE! Augero hasn't had too many chances this evening, but he is picked out at the back post by a fine ball over the top. The Argentine then tries his luck with a first-time volley, but his effort deflects wide of the post, with the resulting corner easily dealt with by the hosts.
SUB! Aguero's last piece of action was that strike on goal, as he heads off to be replaced by Sterling.
YELLOW CARDS! City are handed two bookings in one fell swoop, as Sagna is cautioned for a foul on Dybala, before Navas sees yellow for throwing the ball away.
UPDATE! We've had another goal in Germany and it's Monchengladbach who have scored their second of the evening. Fabian Johnson has grabbed their latest effort, which has almost confirmed Juve's spot in the last 16.
It appears as though City may be bringing on Caballero for Hart, with the England goalkeeper suffering with a problem. Juventus are also about to make a change of their own, as Cuadrado has been standing on the touchline for the past few minutes just waiting for the ball to go out of play.
SUB! Juventus are finally able to make the substitution, as the impressive Sandro heads off to be replaced by Evra, who is making his 100th appearance in the Champions League.
SAVE! Hart may be carrying an injury, but he has kept City in the game with another vital stop. It was Morata who forced his hand, as the Spaniard danced through the City defence and found himself through on goal, before seeing his close-range attempt blocked by the Englishman.
CHANCE! Massive chance for City as De Bruyne gets in down the right and pulls a great low ball across the six-yard box for Sterling. The winger should slot the ball into the net, but his effort trickles wide of the post, with Barzagli getting a slight touch on its way through.
SUB! Hart is unable to play on any further for City and he makes way for Caballero. That is a huge blow for the visitors, who will be hoping that the problem is nothing too serious.
SUB! Cuadrado has been waiting for a while to come on, but he finally enters the pitch in place of Dybala.
CHANCE! Cuardado has only been on the pitch for 30 seconds, but he almost seals the win for Juventus. The ball breaks to the Colombian inside the box, and he sees his first effort blocked, before firing the rebound narrowly wide of the post.
City just seem to have run out of options at the moment, but they still have players capable of making the difference. Their final ball has let them down on a couple of occasions, and they actually look more in danger of conceding another goal on the break.
SHOT! Toure tries his best to drag City back into the match when he takes aim from 30 yards out, but his powerful attempt flies high over the bar. It would have taken something very special from that range to have beaten a goalkeeper of Buffon's quality.
There are going to be at least four minutes of stoppage time.
City are not lacking any effort as they push forward with Toure freeing Sterling down the left. The winger has time and space to pick out one of his teammates, but his cross fails to beat the first man and Juventus hammer the ball clear once again.
FULL-TIME: Juventus 1-0 Manchester City
It's full time in Turin and Juventus have seen the game out to claim a 1-0 win over Manchester City that has ensured their progress to the knockout stage of the Champions League. The Citizens had their chances to equalise, but a lack of quality in the final third cost them this evening.
Right, that just about does it for our coverage tonight. There is still analysis and player ratings of the match to come, so make sure you stay tuned for that. We've got more European action with the Europa League tomorrow evening, but until then, goodbye!