The reigning champion was on top but was unable to gain the upper hand and was punched out after 24 minutes.
A confusion in the Munster midfield saw the ball go on the deck and Steyn was the first to react, gathering and racing to score under the posts.
Simon Zebo attempted a counterattack for Ireland but was bundled out after Huw Jones was bored on the try line.
The Warriors held on to their four-point lead until the break, but not before Matt Fagerson was shown a yellow card for a high tackle on Peter O’Mahony.
The 14 men started the second half on the front foot and went through two kickable penalties to corners, but were blocked by the Munster defense on each occasion.
Horne slotted his effort wide when Glasgow were awarded another penalty within bounds.
Then came the moment of pure quality. Tom Jordan made 22 restarts deep in his own territory and connected with Rory Darge on a running back. He laid waste to the earth through the Munster midfield and found Jones who fed Cancelliere who evaded the cover defense.
Horne made the adjustment and scored a superb conversion to give Glasgow a 14-3 lead.
Darge was needed on the other side of the ball when a brilliant turnover near his own line thwarted a Munster drive that looked set to lead to a try.
But the home team didn’t have to wait long. Horne’s charged box kick handed possession to Munster and a few stages later Jeremy Loughman was free and the ball eventually moved wide for Frisch to score.
Glasgow weathered the storm well and Munster finished the game with 14 men after Nankivell’s reckless clear-out landed on Horne’s head.
The scrum-half snuck over the penalty kick to extend his team’s lead to seven points.
Munster could not come up with a late rescue act and it will be Glasgow who travel to South Africa for the final and will be looking for their first win in nine years.