The Bianconeri started this term poorly – going winless in their first three top-flight games – but had responded well with a four-match winning run before travelling to Inter, which was facing consecutive league defeats for the first time since March 2020.
However, it was Dzeko who opened the scoring after 17 minutes at San Siro with his eighth goal of the season as the division's early top scorers added their 24th goal of the term.
Juve's nine-match unbeaten run across all competitions seemed destined to end but Dybala's late penalty, aided by a VAR decision that infuriated Simone Inzaghi so much he was sent off for his reaction, ensured Massimiliano Allegri's men left Milan with a point.
Samir Handanovic produced a fine double save to deny Alvaro Morata and Alex Sandro in the opening stages after Milan Skriniar had headed narrowly wide for Inter.
Hakan Calhanoglu then curled against the right-hand post before Dzeko converted on the rebound from close range – his fifth Serie A goal in just four home appearances so far this campaign.
Juan Cuadrado fired wide at the other end and Leonardo Bonucci sliced off target on the stroke of half-time as Juve looked to respond.
Dzeko flicked wide after the interval as he sought to extend Inter's lead before Ivan Perisic skewed over Wojciech Szczesny's goal just after the hour mark.
Substitute Dybala's free-kick was then beaten away by Handanovic before the Argentina international converted from the spot to score a late equaliser following Denzel Dumfries' foul on Alex Sandro, which was picked up by VAR.