England had the perfect start through Kieran Trippier‘s 20-yard free-kick after only five minutes, but Perisic’s 68th-minute equaliser sent the match into extra time.
Croatia face France in the final in Moscow on Sunday.
England lost momentum after the break and were punished when Perisic stole in ahead of Kyle Walker for an athletic finish.
Perisic hit the post and Jordan Pickford saved magnificently from Mandzukic, before the striker made the decisive contribution with 11 minutes of extra time left.
The 32-year-old reacted quicker than John Stones in the area to beat Pickford – and England had nothing left to give.
England will now play Belgium in Saturday’s third/fourth place play-off in St Petersburg.