Tunisia reached their first Africa Cup of Nations semi-final since 2004 as they ended Madagascar’s fairytale run.
The Eagles of Carthage, who will face Senegal in Sunday’s last-four tie, led through Ferjani Sassi’s deflected shot from the edge of the box.
Youssef Msakni then doubled their lead after Wahbi Khazri’s shot was parried by Melvin Adrien.
Naim Sliti added an injury-time third to cap off a counter-attack as Madagascar sent players forward.
Indian Ocean island side Madagascar, ranked 108th in the world, were the story of their debut tournament. They had to start Afcon qualifying in the preliminary round in March 2017, but went on to stun Nigeria in the group stages last month and then DR Congo in the last 16.
Their squad contains players who play in Reunion, the French lower leagues and Thailand. Their head coach Nicolas Dupuis also manages French fourth-tier Fleury.
But their dream came to an end as they were well beaten by a professional Tunisia performance in Cairo.
Tunisia playmaker Khazri was heavily involved in proceedings throughout and had a free-kick tipped over the bar by Adrien. He then thought he had scored their opener, but it was disallowed correctly for offside.
Tunisia got the breakthrough when Sassi’s shot hit the backside of Thomas Fontaine and flew into the net. And the game was over once Msakni scored.
The underdogs, who never looked like scoring, took risks in a bid to find a way back into the game – and Khazri squared the ball for Sliti to finish off a quick break and seal the win.
They face Senegal at 17:00 BST on Sunday, with Algeria facing Nigeria at 20:00 BST.