Defending champion Juventus struggled again as it was held to a 1-1 draw at Parma in Serie A on Sunday.
Andrea Pirlo gave Juventus the lead with a trademark free kick early in the second half but Nicola Sansone levelled in the 78th minute to preserve Parma's unbeaten home record.
Second-place Lazio is now only three points behind Juventus after recording a controversial 2-0 win at home to Atalanta.
It is a blow for Juventus, which had an eight-point advantage at the start of the year.
"We deserved to win because we played well and created more than Parma," Juventus coach Antonio Conte said. "The goal was my fault, because I called out to Mirko Vucinic to leave it. It's only my fault and without that mistake we would have been talking about a Juventus which won there and kept the same lead in the table.
"But the championship was never already over, we knew we would have to fight until the end. There are great competitors in Italy, such as Napoli and Lazio, and also Milan and Inter. We have to be careful of all our rivals."
Former Atalanta striker Sergio Floccari gave Lazio the lead after the ball struck his arm, and an own goal from Davide Brivio sealed the result.
"We deserved the victory for what we did in the second half, certainly not in the first," Lazio coach Vladimir Petkovic said. "If we are to aspire to something more this season, then we must learn to be more consistent throughout the game.
"Floccari? We would not have complained if the referee had awarded a free kick for the handball, but the touch was an involuntary ricochet and that was the decision he made."
Napoli, which is appealing against its two-point penalty for its role in the match-fixing scandal, is two points further back after cruising to a 3-0 win at home to Palermo. Fifth-place Fiorentina surprisingly lost 3-1 at Udinese as Antonio Di Natale scored twice.
Milan held to draw
In the evening game, Sampdoria continue to impress as it held AC Milan to a 0-0 draw.
Milan's Christian Abbiati was by far the busier goalkeeper in the first half but Sampdoria's Sergio Romero pulled off a great save on the hour mark to deny Kevin-Prince Boateng.
Juventus was eager to get back to top form after a surprise loss at home to 10-man Sampdoria last week and a narrow extra-time victory over AC Milan in the Italian Cup.
However, Parma is the only team left in Serie A yet to lose a game at home.
Pirlo had scored four goals this season, all from direct free kicks, and he added to his tally when his effort was deflected off Jonathan Biabiany in the wall and completely wrong-footed Mirante.
Parma levelled on the counter attack when Gabriel Paletta sent a great ball throught to Sansone who raced clear of Martin Caceres before slotting it past Gianluigi Buffon.
In Rome, Floccari broke the stalemate in the 67th minute. Stefan Radu's cross was bundled onto the crossbar and the rebound hit the striker's arm before he fired it home from a couple of yards out.
The Atalanta players were furious and surrounded the referee but the goal stood.
Lazio doubled its lead when Brivio headed Stefano Mauri's cross into his own net.
Atalanta ended the match with 10 men as Carlos Carmona was sent off after picking up a second yellow card.
Napoli cruised past Palermo 3-0 with goals from Christian Maggio, Gokhan Inler and substitute Lorenzo Insigne for its third consecutive victory.
Insigne's younger brother Roberto also came off the bench, to make his Serie A debut.
Edgar Barreto hit the bar for Palermo with a free kick.
Day to forget
Udinese goalkeeper Zeljko Brkic had a miserable day despite his team recording a second win on the trot, following its 3-0 win over Inter Milan.
His own goal gave Fiorentina the lead as Gonzalo Rodriguez's header crashed off the crossbar and in off the goalkeeper's head, and Brkic was then forced off with a broken finger.
Udinese levelled through a penalty by Di Natale after Borja Valero was adjudged to have fouled Maurizio Domizzi.
The Udinese captain doubled his tally in the second half before, seconds later, a howler from Fiorentina goalkeeper Neto saw Luis Muriel extend his side's lead.
Roma also lost, going down 1-0 at Catania.
Alejandro Gomez scored the only goal of the game on the hour mark.
Elsewhere, Cagliari recorded its first league victory since October as it came from behind to beat fellow relegation candidate Genoa 3-1.
Marco Sau and Daniele Conti grabbed the goals for Cagliari after Eros Pisano had headed Genoa into the lead with his first Serie A goal.
Genoa's Felipe Seymour was shown a straight red card seven minutes from time.
Earlier, Torino beat fellow struggler Siena 3-2, although the bottom club came agonizingly close to pulling off a thrilling comeback.
Former Torino midfielder Alessandro Rosina blasted a penalty wide a minute from time after Matteo Brighi had fouled Francesco Della Rocca.
Brighi had given Torino the lead in the fifth minute but Reginaldo bundled in the equalizer shortly after the half hour.
However, Rolando Bianchi and Alessio Cerci put Torino 3-1 up before halftime.
Siena was back in the game in the 75th when Reginaldo backheeled a cross for Michele Paolucci to fire home.