Serie A leaders Inter Milan seemed in control at half-time, but were made to battle all the way for a thrilling 3-2 victory at Udinese. After the shock of Simone Pepe's early goal for the hosts, Jose Mourinho's men hit back with strikes from Mario Balotelli, Maicon and Diego Milito.
But Antonio Di Natale halved their lead from the spot and Gokhan Inler hit the woodwork in stoppage time as the hosts were left clinging on.
Pato brace before injury
An Alexandre Pato brace set AC Milan on their way to a routine 3-1 win over Atalanta that kept them four points behind Inter in the title race. The Brazilian, whose afternoon ended on a negative note as he came off injured ten minutes from time, scored twice in the final 15 minutes of the first half.
And even though Jaime Valdes pulled one back, Marco Borriello followed up to score after Ronaldinho's penalty was saved.
Last-gasp Napoli hurts Roma
Napoli midfielder Marek Hamsik struck an equaliser in the final moments to end Roma's seven-match winning run as the capital club slipped three points adrift of Milan.
Hamsik fired in from the penalty spot after a handball from Philippe Mexes to deny Roma, who looked to be on their way to a convincing win after taking a 2-0 lead in the 65th minute through Julio Baptista's spot-kick and Mirko Vucinic's effort.
Substitute German Denis reduced the deficit before Hamsik levelled at the end, as Napoli grabbed a point in the 2-2 draw.
Palermo leapfrogged Juventus into fourth with a 2-0 win at the Stadio Olimpico. The win came courtesy of second-half strikes from Fabrizio Miccoli and substitute Igor Budan.
Samp streak ends
Sampdoria's six-match unbeaten run came to a shuddering halt as Parma eased to a 1-0 victory thanks to Cristian Zaccardo's second-half winner. Chievo cast aside their relegation fears with a second Serie A victory in a week as Cagliari's European hopes were dealt another blow.
Marcos Ariel De Paula gave the hosts the lead in the 33rd minute with his first goal for Chievo and, although Davide Astori levelled early in the second period, Pablo Granoche netted the winner in a 2-1 win 12 minutes from time.
Both sides ended the game with ten men after Michele Marcolini and Radja Nainggolan picked up their second yellow cards within ten minutes of each other.
Adailton treble fuels fightback
Bologna came from behind three times before beating Genoa 4-3 in a dramatic game at the Stadio Luigi Ferraris. David Suazo opened the scoring in the eighth minute before Antonio Busce brought Bologna level for the first time three minutes later.
Giuseppe Sculli restored Genoa's lead in the 18th minute only for Adailton to equalise again. Suazo made it three seven minutes before half-time, but two goals from Adailton in the second half completed his hat-trick and gave Bologna a shock win in Liguria.
A last-minute winner from Massimo Maccarone completed a late comeback for basement boys Siena at Livorno. Cristiano Lucarelli put Livorno ahead from the penalty spot after ten minutes, but they lost Davide Moro to a second yellow card six minutes after half-time.
Nevertheless, their lead held until the 79th minute when Emanuele Calaio pulled Siena level. And Maccarone then struck in stoppage time to give his side a 2-1 win, taking them to within three of their opponents and six shy of 17th-placed Lazio.