Milan, the nominal home side at a boisterous San Siro, had the better of the play and opportunities but could not convert their chances into goals and head into next month’s second leg level with their local rivals.
Serie A champions Inter were poor and have now failed to win in their last five matches in all competitions in a dip in form which has also cost them their lead in the league.
Inter are battling for the Serie A tite with Milan and Napoli, who are both two points ahead of Simone Inzaghi’s side and face off in Naples on Sunday.
The winner of this tie will play in May’s final against either Juventus and Fiorentina, who will face off in their first leg on Wednesday in Dusan Vlahovic’s first match in Florence since leaving for Turin in January.
On Tuesday Fiorentina asked their fans not to chant racist abuse after Vlahovic was targeted with “gypsy” insults by opposition fans earlier in the season.
Before Tuesday’s derby supporters of both teams held up cards with the word “peace” while a message from Milan legend Andriy Shevchenko pleading for an end to the war in Ukraine was played on the San Siro’s big screen.
“Italian friends, please make your voices heard… Ukrainians want peace because peace has no borders,” Shevchenko said to applause from all four sides of the ground.
Milan were the more dangerous side in the opening exchanges and should really have been ahead in the 11th minute when Theo Hernandez burst through the centre practically unopposed but could only scuff wide with his right foot.
Their inability to capitalise on the numerous good positions they worked themselves into was summed up when Nicolo Barella was dispossessed and Rafael Leao burst upfield and fed Alexis Saelemaekers, whose first touch on the edge of the area wasn’t good enough.
The second period started in the same way as the first, with Leao having a curling shot well saved by Samir Handanovic straight after the restart.
Moments later Alessandro Bastoni did brilliantly to block Saelemaekers’ effort after the Belgian was laid on by Olivier Giroud, who moments earlier had been screaming for a penalty after Milan Skriniar bundled into the back of him.
That was about it for major incident as two off-form sides bounced off one another but failed to conjure up much of interest for almost the entire second half.
On the basis of Tuesday’s display, neither Juve nor Fiorentina will fear either of their potential opponents come the final at Rome’s Stadio Olimpico.