The defeat leaves the Rossoneri pointless after two matches in Group B - their worst ever start to a Champions League campaign.
Backed by a buoyant San Siro, Milan's first home match in Europe's premier competition since 2014 saw them lead through Rafael Leao's fine strike after 20 minutes.
Even after Franck Kessie's red card nine minutes later, Milan dug in admirably and looked to have frustrated their opponents, who for all their pressure, created few clear-cut chances.
However, Milan hearts were broken by substitute Antoine Griezmann and Luis Suarez in the final stages as the duo's goals earned Atletico a priceless victory in a match that could so easily have gone the other way.
"We played a great game, for sure," Milan coach Stefano Pioli said. "We created lots of chances, we were a team, we suffered very little, hardly at all. We were masters of the field, so the team's performance had to give us great confidence.
"The referee's decisions ... yes, Franck [Kessie] has made a foul that can be avoided but it is so early in the game and should not be a second yellow card to leave a team in the Champions League 10 men after 30 minutes.
"It is too bad, we deserved to win."
Suarez's penalty for Atletico - his first for the team in Europe - was timed at 96 minutes and 21 seconds - the latest game-winning goal in the Champions League since the start of the 2003/04 season, when such data was first gathered - and provided Diego Simeone's side with a huge boost.
The result leaves Atletico on four points from their two Group B matches, and puts them in a strong position to reach the knockout stages, sitting three points clear of Porto in third with Liverpool top on six points.
"It's true, in the first 30 minutes they put us under so much pressure and we didn't have the tools to get out of that," Simeone said. "Then they were left with one less man and from there the game changed. They were superior to us.
"I'm very happy for Antoine, he needed this goal. I had no doubts in counting on him."