AS Roma beat struggling AC Milan 2-1 at the Stadio Olimpico on Sunday to move up to fifth place in Serie A and continue the visitors' miserable run.
Nicolo Zaniolo struck the winner after 59 minutes to send Roma above Cagliari into fifth on 16 points, one behind Napoli in the fourth and final Champions League spot.
"The players put in a good performance and fought hard, but it's not easy at the moment to play three games in a week, so they really deserved this," Roma coach Paulo Fonseca told Sky Sport Italia.
"Zaniolo had a great game, scored an important goal for us and we have three very, very important points for the team."
Stefano Pioli has picked up one point from his first two games since succeeding the sacked Marco Giampaolo as Milan coach, a 2-2 draw with Lecce on his debut at San Siro.
His side are 12th with 10 points, having won just one of their last six games.
"I expected more," Pioli said.
"Over the two games, we frankly gave our contribution to the failed victories. We made mistakes that were too obvious for a club of our status."
A lively and entertaining game was characterised by defensive errors that led to all three goals.
Dzeko was left completely unmarked to power a header home at the back post from a Jordan Veretout corner.
But the hosts were back in front four minutes later when Calabria gave the ball away cheaply and Zaniolo fired in a shot from the edge of the area.
Later on Sunday, Ciro Immobile's 89th-minute header gave Lazio a 2-1 win at Fiorentina to move the Roman club into sixth place, one point behind Roma.
Joaquin Correa put the visitors in front in the first half before Federico Chiesa's equalised, but Immobile struck late on before Lazio substitute Felipe Caicedo had a stoppage-time penalty saved by Bartlomiej Dragowski.