A deflected strike from Brozovic four minutes into the second half and a late clincher from Lukaku settled a contest that Antonio Conte's men always looked the more likely to win.
Milan, the designated home team at the shared San Siro, only produced one shot on target and was comfortably kept at arm's length by Inter after the opening goal.
The Rossoneri have now lost two of their first four games under coach Marco Giampaolo and failed to beat Inter in seven consecutive league derbies.
The first big chance came when Lautaro Martinez slipped Lukaku through on goal, the Belgium striker's right-footed shot forcing a one-handed save from Gianluigi Donnarumma.
A better opportunity arrived in the 21st minute, but Danilo D'Ambrosio could somehow only hit the post from four yards on the rebound after Donnarumma made a reaction save from Martinez, the opening created by Stefano Sensi's clever cut-back.
Inter almost paid the price for those misses when Hakan Calhanoglu found the net, but the goal was disallowed because Kwadwo Asamoah's poor clearance was adjudged to have struck the arm of Franck Kessie on his 100th Milan appearance.
D'Ambrosio thought he had made amends with a stunning overhead kick which was somehow saved by Donnarumma and tucked in by Martinez on the rebound, but an offside flag halted the move.
Inter eventually broke through after the break, Brozovic's strike from the edge of the area taking a wicked deflection off Rafael Leao to beat Donnarumma after Sensi's lay-off.
The win was sealed 12 minutes from time with Lukaku guiding a well-judged header into the far corner from Nicolo Barella's left-wing cross.
Matteo Politano's late curler struck the crossbar and Antonio Candreva's deflected shot bounced off the inside of the post as Inter threatened a third, with Milan left to reflect on a forgettable performance that also saw Theo Hernandez strike the woodwork in the closing minutes.