The Portuguese visitors surged ahead after 12 minutes in the Allianz Stadium when the ball accidentally bounced off the Brazilian left-back and into his own net after Gianluigi Buffon had saved from Gelson Martins.
But Bosnian midfielder Miralem Pjanic hauled the hosts back into the game after 29 minutes before Croatian forward Mario Mandzukic headed in the winner six minutes from time.
Juventus, who lost their opening game 3-0 to Barcelona but beat Olympiakos 2-0 with late goals, are second in Group D behind the Spaniards with six points from three games. Sporting are now third.
“We are not brilliant right now, we have had injuries, others returned from international duty in bad shape so we have work to do,” said Juventus coach Massimiliano Allegri.
“So it was an important victory. (Gonzalo) Higuain had a great performance today, with character and quality, I’m happy with him. Now we have to start again in Udine to resume the championship race.
“It’s never easy to win in the Champions League, we’ve taken a step forward, but there’s a long way to go and we must try to reconnect, as some of our elements are a bit disconnected.
“It’s one season up to November and another after that. After the next break for international duty is when the Juventus season will really begin.”
It was a first win for the Turin club since their victory over Olympiakos as they have been frustrated in Serie A recently.
Italian title-winners in the last six seasons, Juventus lost to Lazio on Saturday — a first home defeat in over two years — after being held by Atalanta the previous week.
But they looked to be struggling for form again as they were pushed hard in Turin by a Portuguese side chasing a first win in Italy.
Pjanic — returning after almost a month out with a thigh problem — partnered Sami Khedira in midfield with Blaise Matuidi rested before coming on for the last half hour.
After the unfortunate own goal, Higuain’s close-range shot five minutes later was blocked before Rui Patricio dived to keep out a Khedira effort.
Mandzukic and Paulo Dybala also missed chances as Juventus poured forward in search of the equaliser.
But Pjanic broke through, sending a free-kick awarded for a Rodrigo Battaglia foul on Pjanic over the wall and into the net.
Mandzukic missed a chance to head in from close range off a pinpoint Higuain cross after an hour.
Sporting goalkeeper Patricio then struggled to deal with Alex Sandro’s cross-shot, but Juventus got the winner after Douglas Costa was introduced as a late substitute in place of Stefano Sturaro.
Brazilian winger Costa had been on the pitch for less than a minute when he crossed from the left for Mandzukic to score with a low header at the back post.
“It’s the Champions League and we’re in a group with Barcelona and Juventus,” said Sporting coach Jorge Jesus.
“We showed great qualities and at times I think we were better than Juve. We could have a won. But Mandzukic played well on goal.”
“It was a tough game, and an important win,” said Juventus defender Giorgio Chiellini.
“The important thing was not to concede goals but we didn’t dwell on it (the own goal), we showed personality.”
Would you like to place a soccer bet? Click here to get started in 3 easy steps.