The Argentinian striker gave Juve a half-time lead at the San Siro and added a second shortly after the hour-mark.
Milan carved out the first real chance in the 17th minute when Nikola Kalinic headed Ignazio Abate’s cross off target, while Juve’s Paulo Dybala forced a fine save from Milan goalkeeper Gianluigi Donnarumma soon after.
Juve then took a 23rd-minute lead when Dybala picked out Higuain in the penalty area and the latter arrowed a low shot into the bottom corner.
Milan went close to levelling it up eight minutes before the break when Suso fired in a low drive after being set up by Abate, but Juve keeper Gianluigi Buffon was equal to it.
Kalinic forced Buffon — who announced his intention to retire after next summer’s World Cup earlier in the week — into another smart save on the stroke of half-time following Hakan Calhanoglu’s neat headed pass.
Milan made all the early running at the start of the second half, but Dybala served warning of Juve’s threat on the counter-attack with two long-range efforts that were off target.
The visitors doubled their lead in the 63rd minute as Higuain fired home his seventh goal of the season.
Defender Kwadwo Asamoah’s storming run had Milan on the back foot and when Dybala cleverly stepped over the Ghanaian’s ball across the edge of the area, Higuain ran on to apply a clinical finish inside the near post.
Milan tried to respond and Kalinic saw another effort superbly blocked by Stephan Lichtsteiner, while Calhanoglu’s shot was comfortably saved by Buffon.
Dybala threatened to put the game beyond Milan in the 77th minute, but his thumping drive after being set up by Miralem Pjanic well blocked by Donnarumma.
Manuel Locatelli pulled a shot wide as Milan began to run out of ideas and Juve were happy to retain possession and run the clock down in the closing stages.