“I always say that football is not a mathematical equation. I decided to use those three upfront, we were often left unbalanced against a strong opponent like Sporting,” he told reporters.
Sporting dominated much of the match and had chances to score in the first half.
Captain Sebastian Coates had a shot saved by Juventus goalkeeper Wojciech Szczesny before Gleison Bremer cleared a Nuno Santos effort off the line.
Juventus had to substitute Szczesny shortly before the break, with the Poland international holding his chest before being replaced by Mattia Perin.
Substitute Dusan Vlahovic’s 73rd-minute header was blocked on the line by Coates and Gatti bundled the rebound in from close range.
Juventus midfielder Paul Pogba made his first appearance outside of Serie A this season.
This was when he came on as a late substitute for Angel Di Maria and Perin made a crucial save in stoppage time to deny the visitors an equaliser.
“We made a few mistakes, the lads can improve, above all in the final cross when Perin made two crucial saves, we should’ve sensed the danger earlier,” Allegri said.
The result continued Sporting’s winless run in Italy. Four of their 16 games in the country have resulted in draws and 12 in defeats.