(Video guidance: No sound on highlights video)
Joe Kernan's team led by eight points at half time but Munster fought back to take the lead in the closing stages of the game.
But two late scores from Armagh's Ciaran McKeever were instrumental in clinching Ulster a hard-fought victory.
Tyrone's Martin Penrose got the opening goal of the game in the 10th minute when he shrugged off his marker and planted the ball into the net.
When Eamon McGee and Conor McManus added further scores the hosts were leading 1-5 to 0-1.
The scores continued to come at regular intervals but two late points from Colm O'Neill and Aidan
Walsh left Munster with some hope as they trailed 1-11 to 0-6 at half time.
Helped by a Donnacha O'Connor's penalty the visitors fought back and when Cork's Paul Kerrigan sent over a point with 11 minutes remaining the teams were level.
Walsh then scored to give Munster the lead after Ulster had gone 30 minutes without a score but McKeever's double saw them regain their one point advantage.
Sean Cavanagh added another to leave two between the sides and Ulster hung on despite a late score from Aidan O'Mahoney
But Munster missed three chances to force the game into extra-time, Gary Hurney hitting two wides near the end.