Sportal.co.nz 29.Jul.2012Getty Images
After leading 13-6 at half-time, the Sharks - who led by as many as 14 points in the second half - held off their fast-finishing opponents to set up a meeting with the Chiefs in New Zealand next week.
Stormers lock Eben Etsebeth's hit on Sharks hooker Bismarck du Plessis in the early stages set the tone for an exciting encounter as South Africa's two best sides battled it out for a spot in the decider.
After both sides traded penalties, a Frederik Michalak drop goal put the Sharks 6-3 in front.
And they extended that lead further when Louis Ludik got on the end of a Riaan Viljeon kick before charging past Brian Habana and Jean de Villiers to score the game's first try.
That was converted as the Sharks led 13-3 but Stormers fly-half Peter Grant reduced the margin to seven at the main break.
And it was the side trailing that looked the better in the early stages of the second half, but the Stormers made several errors with the ball that robbed them of a chance to convert their dominance.
Grant and Michalak both kicked penalties before JP Pietersen cut through the Stormers defence to score the game's second try.
Despite the Sharks leading 23-9 after the resultant conversion, the Stormers threw everything they had at their opponents and winger Gio Aplon's converted try gave them a glimmer of hope.
Grant reduced the margin to four with seven minutes remaining when he kicked a penalty but Michalak's second drop goal of the night put his side seven points clear, and despite the best efforts of the Stormers, they could not cross in the dying stages.