A late try from Warrick Gelant gave Stormers a 17-15 win over Ulster in the United Rugby Championship (URC) semi-final in Cape Town on Saturday, setting up an all-South African final next weekend.