Kieran Trippier and Ivan Perisic scored in regular time, before the Juventus forward lost his marker in the 109th minute to net the winner and his second goal of the tournament.
The win puts Croatia into the decider against France on Sunday and Mandzukic, 32, said his country showed great courage in the come-from-behind win.
"This is a miracle. Only great teams can be as brave as we were and fight back from a goal down against teams like England. We've played our hearts out throughout the tournament," he said.
"I'm happy with my performance in all the games. I'm here for the team. I like these games. We were under pressure against Denmark and Russia but you all saw what we did today.
"We were like lions out there tonight and we will be the same in the final. We enjoyed the game."
Photo Getty Images. Caption: Mario Mandzukic scores the winner for Croatia against England