Nicolo Zaniolo scored the winner as Roma heaped more misery on ailing AC Milan in Serie A by grabbing a 2-1 win at the Stadio Olimpico.
Stefano Pioli is still searching for his first win since he replaced the sacked Marco Giampaolo earlier this month.
And his side's continued inadequacies were evident in a performance littered with defensive errors which enabled the home side to move above Cagliari into fifth place.
Pioli named the same side that had stuttered to a draw with Lecce last week and they had the first chance with Rafael Leao firing wide before a Lucas Paqueta effort was ruled out for offside.
But Milan's early promise soon faded and they fell behind after 38 minutes. Visiting keeper Gianluigi Donnarumma had saved brilliantly to deny Zaniolo but from the resulting corner, Dzeko was left completely unmarked at the far post and headed home.
Javier Pastore and Chris Smalling had chances to increase Roma's advantage as the visitors continued to look susceptible at set-plays.
Pioli's men were handed a lifeline 10 minutes into the second half when Davide Calabria crossed and Theo Hernandez diverted home the equaliser via a deflection.
But just three minutes later, Milan squandered possession and Dzeko teed up Zaniolo who rifled home what proved to be the winning goal from the edge of the box.
Substitute Gianluca Mancini could have extended Roma's lead from another corner, Pastore had an effort ruled out for offside, and Donnarumma saved well to deny Zaniolo.
Milan came close to grabbing a scarcely deserved draw in stoppage time but midfielder Hakan Calhanoglu drilled his shot into the side-netting.