Juventus squandered a chance to reach the last 16 of the Champions League but Gonzalo Higuain struck late to salvage a valuable 1-1 draw against Sporting CP.

Bruno Cesar's first-half goal gave the Portuguese side control of Tuesday's game and they proceeded to dominate play on a night when victory for Juventus would have seen them clinch qualification for the knockout stage.

Higuain left it until the 79th minute to level the match and put the Italian champions back on course for second place in Group D, but they will need another victory from their last two games to make sure of qualification, as Sporting remain three points behind.

While the result will have disappointed Juventus boss Massimiliano Allegri, he may have been more troubled by his side's performance, which lacked the fluency and confidence of their 2-0 win over AC Milan in Serie A three days earlier.

Sporting should have extended their lead in the second half, missing a number of clear chances to extend their lead as Juve's defence struggled to contain the dynamic Gelson Martins and industrious Marcos Acuna.

The situation only seemed to dawn on Juventus late on and Higuain converted one of very few chances to have come his way.

Cesar lashed a shot over the crossbar from 20 yards early on, failing to trouble Gianluigi Buffon but showing the home side's intent to attack and fight for a positive result.

And 20 minutes in it was Cesar, drafted into the team because of an injury to William Carvalho, who gave Sporting the lead.

Martins jinked his way through Juventus' defence and into the box before Buffon parried his angled shot into Cesar's path, with the Brazilian side-footing the rebound into the bottom-left corner from the edge of the box.

Sami Khedira was presented with a golden opportunity to equalise two minutes later when Mattia De Sciglio's cross found him unmarked on the penalty spot but the Germany international put his header wide of Rui Patricio's goal.

That was the last of Juventus' attempts in a poor first half marked by wayward passing and panicky defending that would have seemed unimaginable from the cool-headed Bianconeri side that reached last season's Champions League final.

Gelson Martins burst into the Juventus half in the first minute of the second half and only an apparent clip on the shin from Alex Sandro slowed him in his tracks and allowed Andrea Barzagli to recover possession for the visitors.

At the other end, Juan Cuadrado's skilful step-overs then took him into the Sporting box where he squared the ball for Miralem Pjanic to hook a shot narrowly over, but despite that opening the home side remained on top.

Martins broke clear again on the hour mark and combined with Bas Dost to create a chance for Cesar, whose shot was not far over the crossbar, while Juve replied with a low shot from De Sciglio that Patricio got down well to save.

It should have been a two-goal lead for Sporting when Bruno Fernandes sent a low cross into the box and Dost was agonisingly close to poking it home, only for the ball to flash past his outstretched leg and roll out of play.

Higuain's first chance of the evening arrived courtesy of a neat flick-on from Paulo Dybala but the powerful striker's header was too close to Patricio, who made a comfortable save.

The scent of goal seemed to rouse Higuain and, just as Sporting had begun scenting victory, the Argentina international latched onto Cuadrado's slide-rule pass before lifting his finish deftly over the diving Patricio and in.

That came as a hammer blow to Sporting and despite forcing a number of late chances, the hosts had to settle for a point that only just keeps their Champions League hopes alive.