Josko Gvardiol, one of the stars of the tournament in Qatar, headed Croatia into the lead in the seventh minute at the Khalifa International Stadium but Achraf Dari brought Morocco level right away.
Orsic’s terrific curling strike late in the first half ensured Croatia took home the bronze medal, the 11th World Cup in a row a European team has finished third.
Morocco, the first World Cup semi-finalists in history, had signalled their intent with a spirited display against 2018 runners-up Croatia in their opening game in Qatar.
The rematch was nothing like the cagey 0-0 draw in the group stage, with Morocco goalkeeper Yassine Bounou dangerously close to passing the ball into his own net early on.
Croatia soon surged in front from a well-rehearsed free-kick as Ivan Perisic nodded Lovro Majer’s clip into the box back towards a diving Gvardiol, who planted his header into the corner.
But Morocco hit back two minutes later when Hakim Ziyech’s free-kick looped up off the head of Majer, allowing Dari to head past Dominik Livakovic.
Andrej Kramaric headed straight at Bounou, who then did well to scoop the ball to safety as Marko Livaja closed in after spilling a drive from Luka Modric.
Orsic curled in brilliantly via the post from the corner of the box to put Croatia back on top before half-time after 18-year-old Morocco debutant Bilal El Khannouss lost the ball deep in his half.
Orsic again went close moments after the restart, his goalbound effort brushing Jawad El Yamiq and fizzing narrowly past the post.
Croatia were furious when Gvardiol tumbled inside the area when his foot appeared to be caught by Sofyan Amrabat, but there was no VAR review.
It could have proved a match-changing moment had Youssef En-Nesyri found a way past Livakovic, who spread himself superbly to block the striker from close range.
Mateo Kovacic put wide with the chance to put the game beyond doubt. Morocco had a late penalty appeal turned down and En-Nesyri headed just over but the Atlas Lions could not find a way back after their historic run.