The 28-year-old, who has played for Bayern for the past two seasons, has undergone his medical and signed with the Champions League finalists.
No transfer details were revealed but the German media estimated the deal to be worth 22 million euros ($30 million).
Mandzukic, whose contract had two more years to run, had said last month that he was keen to quit the German champions because of his difficulty adapting to the style of play of Spanish coach Pep Guardiola.
“I have had fabulous times at Bayern, but let’s be honest, the style of play of coach Guardiola doesn’t suit me,” Mandzukic told Croatian daily Sportske Novosti.
The arrival of Borussia Dortmund’s star striker Robert Lewandowski had reduced the prospects of the Croatian who recently played for his country in the World Cup in Brazil.
At Atletico he should fill the boots of Spanish international Diego Costa who has just completed a 35 million euro ($47.6 million) move to Chelsea.
Mandzukic has played 110 Bundesliga matches, scoring 53 goals, during his four years in Germany, firstly at Wolfsburg and then Bayern Munich.
Atletico sports director Jose Luis Perez Caminero confirmed the signing in a statement issued by the club.
“The transfer of Mario Mandzukic is great news because he has the qualities we were after for this position,” he said.
“He is a strong forward, good in the air and with a powerful shot. He will allow us to pressure the opposition’s defence from the first moment since he works a lot on defenders’ clearances.
“He combines very well with his fellow strikers and is used to competing at the top level. He is a winner, a player accustomed to winning titles. He has a great deal to offer us.”