Munster let Ulster off the hook by missing three easy chances to take this Athletic Grounds clash to extra-time.
A hurling mis-match between Munster and Ulster looked as though it was going to be followed by an equally one-sided football contest when Ulster led by 10 points after 30 minutes. However, the home side totally lost their way as Munster scored an unanswered 1-8.
Ulster failed to score for 29 minutes either side of the break and lost Cavan midfielder David Givney for a second bookable offence on Gary Hurney in the 48th minute.
The score was 1-11 to 1-9 in favour of Ulster but Cork duo Paul Kerrigan and Aidan Walsh nudged Munster ahead before Ciaran McKeever, the sole Armagh representative on the Ulster team, steadied the ship with two quick points on the hour mark.
Munster then spurned three good chances to send the game to extra-time. Hurney missed two gilt-edged opportunities and Donncha O'Connor also hit a bad wide as Ulster were let off the hook.
Ulster manager Joe Kernan admitted he was worried his side were going to go the same way as Crossmaglen – beaten by St Brigid's in the All-Ireland club semi-final 24 hours earlier. "It could have been a very bad weekend," he said.
"We're happy to sneak a win. We were lucky enough in the end, but the boys showed great heart. Ciaran McKeever and Sean Cavanagh were real leaders when it was needed."
Kernan's side came out of the blocks quickly and led by 1-11 to 0-6 at half-time, Martin Penrose expertly finishing the goal after 10 minutes. Cavanagh was in superb form and Monaghan's Conor McManus hit 0-4 from play.
However, the hosts then malfunctioned as Munster battled back. O'Connor netted a penalty five minutes after the restart and, with Colm O'Neill at the heart of everything, they chased down Ulster's big lead.
Aidan Walsh came into the game at midfield and Munster chipped away at the deficit, with points from Marc O Se, Gary Brennan and sub Barry O'Driscoll, and the disappointing attendance of 1,615 supporters finally had a competitive match to watch.
All the momentum was with Ger O'Sullivan's men, and Munster briefly took the lead when Walsh put them in front with 15 minutes remaining, before McKeever's two long-range points ended Ulster's drought.
Cavanagh tagged on a free before Aidan O'Mahony's 68th-minute point left the minimum between the teams in a nailbiting finish.
Munster then spurned three chances to take the game to extra-time. Hurney was unlucky as his attempt at a point crashed off the post. O'Connor was guilty of a bad wide, before Hurney missed again.
After a quiet second half, 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 in Croke Park.
It was an entertaining second half, but the crowd was not exactly a ringing endorsement of the competition. "I'm disappointed," Kernan admitted. "The people have to support this. You saw two very committed sets of players out there so it's a pity more people didn't turn out."
Scorers – Ulster: S Cavanagh 0-5 (3f), M Penrose 1-1, C McManus 0-4, C McKeever 0-2, D Givney, E McGee 0-1 each Munster: C O'Neill 0-5 (5f), D O'Connor 1-0 (pen), A Walsh 0-2, M O Se, A O'Mahony, G Brennan, P Kerrigan, G Collins, B O'Driscoll 0-1 each
ULSTER – P McConnell; C McKaigue, N McGee, E McGee; C McCarron, D Hughes, C McKeever; S Cavanagh, D Givney; M McHugh, M Poland, J McMahon; M Penrose, K Niblock, C McManus. Subs: K Hughes for McCarron (47), C McAliskey for Poland (54), P McComiskey for Niblock (64).
MUNSTER – B Kealy; M O Se, A O'Mahony, P Codd; N O'Leary, E Cadogan, P Kissane; G Brennan, A Walsh; A Clohessy, D O'Connor, P Kerrigan; G Hurney, C O'Neill, G Collins. Subs: M O'Gorman for Codd (30), B O'Driscoll for Clohessy (33), R Donnelly for Kerrigan (68), J O'Riordan for Collins (68).
REF – J Henry (Mayo)