The Italian champions had fans on their toes throughout a one-sided encounter in chilly Turin.
With qualification for the last 16 already secure, Juventus welcomed the Croats looking for a repeat of their 4-0 romp in Zagreb in a bid to beat Sevilla to first place.
The Italian champions had fans on their toes throughout a one-sided encounter in chilly Turin as they completed their mission, but largely flattered to deceive before Higuain broke the deadlock with a clinical strike seven minutes after the restart.
It gave Juve a spur, and when Rugani was left alone at a corner he rose above the Dinamo defence to beat Dominik Livakovic down low.
Coach Massimiliano Allegri claimed Juve could have scored more, but explained: "It was important to win this game but when you get a team playing with so many men behind the ball it's hard to find space.
"Once Higuain scored, it became a lot easier for us.
"In Seville, we secured our qualification and tonight we've wrapped up top spot."
Juve's fourth win in the campaign left the Italians, beaten finalists in 2015, on 14 points, three ahead of Sevilla after their scoreless draw in Lyon.
Zagreb coach Ivaylo Petev said: "Hats-off to Juventus, they're a very strong side. We conceded two goals but we have a very young side that doesn't have a lot of experience at this level. But I'm happy with my players."
Juventus have been ravaged by injury, the loss of Andrea Barzagli, Leonardo Bonucci and Giorgio Chiellini leaving the hosts shorn of their feared 'BBC' defence.
Days before the city derby against Torino on Sunday, Allegri added extra spice when he decided to rest goalkeeper Gianluigi Buffon for Norbert Neto.
Juventus were flying from kick-off, Mario Mandzukic setting up Miralem Pjanic with a deft flick from a long ball in midfield.
The Bosnian found Higuain to his right but despite forcing Livakovic down low, the Argentine's drive was blocked.
It was an early warning, but Juve were wasteful throughout the remainder of the first half that saw Neto threatened only once, when the Brazilian reacting well to a snap header from close range.
The pace of Juan Cuadrado and creativity of Pjanic proved all too much for Ivaylo Petev's side, and they had to dig deep in defence to keep Juve at bay.
Dinamo full-back Leonardo Sigali twice came to the rescue, to thwart Mandzukic then Higuain, and Livakovic was forced down low to collect Pjanic's downward header.
Minutes later, the 'keeper had full-back Gordon Schildenfeld to thank for clearing a loose ball yards from goal as Higuain hovered.
A Pjanic free kick from 35 yards forced Livakovic to parry down low and Higuain was out of position when Livakovic spilled Mandzukic's angled drive.
Juve resumed in positive fashion, Higuain sweeping the ball past Livakovic in clinical fashion after Mario Lemina's fancy footwork left the Dinamo defence in tatters seven minutes after the restart.
But again, Juventus got stagefright when it came to adding to their tally.
Several promising counter-attacks broke down one after the other, Cuadrado at fault more than once for failing to release the final ball while Higuain and Pjanic found themselves in space.
Pjanic fired in a great cross for Mandzukic but before he could tap home Livakovic came bravely out to smother.
Redemption came in the 73rd minute when Rugani rose to send a bullet header past Livakovic down low.
Juve striker Paulo Dybala made his return from a six-week injury lay-off when he replaced Dybala for the last 10 minutes.
But despite three shots towards goal, the Argentine was to be denied a fairytale return to action.