Cristiano Ronaldo scored for a record-equalling 11th consecutive Serie A game in his 1,000th professional match as Juventus extended their league lead.
The 35-year-old tapped in six minutes before the break to equal the mark held by Gabriel Batistuta and Fabio Quagliarella as Juve won 2-1 at bottom club SPAL.
The five-time Ballon d'Or winner has scored 25 goals in all competitions this season for Juventus, including 16 in his current run of 11 matches.
Aaron Ramsey added a second after an hour, before Andrea Petagna pulled one back from the spot for SPAL, amid controversy as the penalty was awarded following a VAR review despite the pitchside monitor not working.
It got Juventus back to winning ways away from home after consecutive defeats against Napoli and Hellas Verona, and ahead of the trip to French club Lyon in the Champions League.
Maurizio Sarri's side opened up a four-point lead on second-placed Lazio who travel to Genoa on Sunday.
Inter Milan are six points behind the champions before their game at home against Sampdoria.
"These were very difficult matches and in the last few years we had never won here," said Sarri.
"The test was to collect the three points, then from tomorrow morning we will study Lyon thoroughly.
"The goal is the championship. The Champions League is a dream, even if in life it is always nice to achieve dreams."
Ronaldo had an early goal ruled offside but made no mistake when running on to Juan Cuadrado's low cross after Ramsey's ball forward.
The Portuguese forward drew level with Sampdoria forward Quagliarella, who in January 2019 equalled the mark previously achieved by Batistuta in 1994-1995 for Fiorentina.
Both Italian Quagliarella and Argentine Batistuta went on to finish the seasons as the Serie A top scorer after their feat, with both scoring 26 goals in total.
Ronaldo has 21 goals in Serie A this season, five behind leading scorer Ciro Immobile.
Ramsey doubled Juve's lead on the hour mark, latching on to Paulo Dybala's pass to produce a scooped lob over SPAL goalkeeper Etrit Berisha for his second league goal of the season.
Petagna pulled one back with a penalty awarded for a Daniele Rugani foul on Simone Missiroli after 68 minutes, a decision made by VAR officials with referee unable to check the faulty monitor.
"Today we had goals scored using VAR when VAR wasn't working," said Sarri. "It seems to me a great injustice - if the monitor does not work, the referee must decide."
Ronaldo missed a chance for a second when his free-kick hit the crossbar, but Sarri's side earned a valuable three points against an outfit they had failed to beat away from home in the previous two seasons.
Juventus captain Giorgio Chiellini made his first start since being sidelined with a cruciate ligament knee injury last August, playing for 55 minutes in Ferrara.
"We're taking it slowly, seeing how he reacts," added Sarri. "He can't play three games in six days that's for sure."
AC Milan missed the chance to move ahead of sixth-placed Napoli into the Europa League places with a 1-1 draw at 10-man Fiorentina, to stay behind the southerners on goal difference.
Zlatan Ibrahimovic had a goal ruled out in the first half for a handball with Milan also losing goalkeeper Gianluigi Donnarumma to a foot injury seven minutes after the break with Asmir Begovic making his debut.
Ante Rebic scored his sixth goal in as many league games in the 56th minute to give Milan the lead.
Fiorentina's Dalbert was sent off for a foul on Ibrahimovic, leaving the hosts a man down for the final half an hour.
But Erick Pulgar grabbed a point for 13th-placed Fiorentina from the spot with five minutes to go for an Alessio Romagnoli foul on Patrick Cutrone.