Substitute Bafetimbi Gomis scored with 17 minutes remaining as Al Hilal defeated ES Tunis 1-0 to book a Club World Cup semi-final against Flamengo.

Gomis was a surprise omission from the starting XI in Saturday's match between the champions of Asia and Africa at Jassim Bin Hamad Stadium.

But he made a rapid impact after coming off the bench late on to send the side from Saudi Arabia through, the victors holding on despite Mohamed Kanno receiving a red card with five minutes left.

Buoyed by a vocal support, ES Tunis should have moved ahead when Anice Badri fired wide after Ibrahim Ouattara forced a mistake from goalkeeper Abdullah Al-Mayoof.

At the other end, Moez Ben Cherifia rushed out to save from Carlos Eduardo after Salem Al Dawsari slipped the Al Hilal captain through on goal.

Al Hilal then thought they had a penalty when Abdelkader Bedrane brought down Eduardo, who was subsequently flagged for offside after the referee had pointed to the spot.

The AFC champions were on top and only a Mohamed Ali Yacoubi header off the line denied Andre Carrillo after Ben Cherifia's initial save, an error from defender Sameh Derbali leading to the opportunity.

After the break, Kanno fired over for Al Hilal as ES Tunis struggled to create chances, Al-Mayoof racing back to claw away an overhit back-pass in a mix-up the closest the Africans came to scoring. 

Gomis was brought on with 26 minutes remaining and he swiftly made his presence felt, the striker collecting Carrillo's pass, brilliantly flicking the ball over a challenge from defender Ali Yacoubi and firing into the bottom corner.

Omar Khrbin fired wide as Al Hilal looked to put the result beyond doubt, but they held on even after Kanno got a second booking for fouling Badri and will play Brazilians Flamengo on Tuesday with a place in the final up for grabs.