Ulster were left hanging on for a 1-14 to 1-13 win in this well-contested M Donnelly Interprovincial Football semi-final.
Joe Kernan’s men looked in total control when they led by 1-11 to 0-06 at half-time, Martin Penrose scoring a fine goal in the 10th minute.
However, Munster reeled off 1-06 without reply with Donncha O'Connor's 40th-minute penalty igniting their fight-back.
But Munster missed three chances to take the game to extra-time, Gary Hurney hitting two wides as Ulster hung on.
Sean Cavanagh was in superb form and Monaghan's Conor McManus was also a key figure, hitting 0-04 from play.
However, the home side totally lost their way as Munster scored an unanswered 1-08 either side of half-time.
It took the visitors a long while to get up to the pace of the game but they came roaring back with a penalty five minutes after the restart from Donncha O'Connor.
Colm O'Neill, who was fouled for the penalty, was at the heart of most of Munster's scores as they chased down Ulster's big lead.
Aidan Walsh came into the game at midfield and Munster gradually chipped away at the deficit with points from Marc O Sé, Gary Brennan and substitute Barry O'Driscoll.
Ulster failed to score for 29 minutes either side of the break and with Munster in the ascendancy, the disappointing attendance of 1,615 supporters finally had a competitive match to watch.
Ulster manager Kernan was furious when claims for a push in the back on Mark Poland were ignored and all the momentum was with Ger O'Sullivan's men.
Munster briefly took the lead when Aidan Walsh put them 1-12 to 1-11 in front with 15 minutes remaining.
Then Ciaran McKeever, Armagh's sole representative on the Ulster team, scored two points from play inside 60 seconds to restore Ulster's lead.
Cavanagh tagged on a free before Aidan O'Mahony's 68th-minute point left the minimum between the teams in a nail-biting finish.
Ulster substitute, Tyrone rookie Connor McAliskey, made a useful impact and won the ball which led to McKeever's second point.
Munster spurned three chances to equalise and take the game to extra-time.
Waterford's Gary Hurney, who starred in last year's final defeat to Ulster, was unlucky as his attempt at a point crashed off the post.
Goal scorer Donncha O'Connor was then guilty of a bad wide before Hurney missed again.
After a quiet second half, Tyrone ace Cavanagh climbed highest and won a vital kickout to give Ulster possession and the defending champions survived to book their place in next Sunday's final at Croke Park where they will face Leinster.
ULSTER: P McConnell; C McKaigue, N McGee, E McGee (0-01); C McCarron, D Hughes, C McKeever (0-02); S Cavanagh (0-05, 0-03f), D Givney (0-01); M McHugh, M Poland, J McMahon; M Penrose (1-01), K Niblock, C McManus (0-04).
Subs used: K Hughes for McCarron (47 mins), C McAliskey for Poland (54), P McComiskey for Niblock (64).
MUNSTER: B Kealy; M O Se (0-01), A O'Mahony (0-01), P Codd; N O'Leary, E Cadogan, P Kissane; G Brennan (0-01), A Walsh (0-2); A Clohessy, D O'Connor (1-00, 1-00 pen), P Kerrigan (0-01); G Hurney, C O'Neill (0-05, 0-05f), G Collins (0-01).
Subs used: M O'Gorman for Codd (30 mins), B O'Driscoll (0-01) for Clohessy (33), R Donnelly for Kerrigan, J O'Riordan for Collins (both 68).
Referee: Jerome Henry (Mayo)