Two Diarmuid Murtagh goals helped Connacht lead 2-3 to 0-3 before Aidan Breen replied with an Ulster goal.
Damien Comer hit a third Connacht goal as they led 3-6 to 1-10 at half-time before Ulster took control.
Despite losing Chrissy McKaigue to a black card, Ulster hit 1-4 without reply, with Charlie Vernon netting.
McKaigue was joined in the Ulster squad at Carrick-on-Shannon by his Slaughtneil team-mate Brendan Rogers, despite their upcoming All-Ireland club championship duties.
Connacht started strongly with their scorer in chief Murtagh firing their opening goal after 7 minutes and again finding the net two minutes later.
Ulster responded well with Fermanagh's Breen finding the net for his provincial for the second time in a week with a 18th-minute goal.
Pete McGrath's charges cut the gap to two points twice over the next six minutes, and left the minimum between the sides for the first time, after a Tomas Corrigan score.
However, Connacht were causing the Ulster defence problems, with Galway's Comer cutting in for a 28th minute goal, as the hosts led by two at the break.
Ulster came fired up on the restart, and despite losing substitute McKaigue to a black card, kept motoring well.
Peter Harte and Corrigan added point before Vernon cut through for a goal in a spell which saw Ulster score 1-4 without reply.
Connacht could only manage two points from frees in the closing quarter, with Emyln Mulligan and Paul Conroy on target.
After the game Ulster captain Eoin Donnelly accepted the cup from GAA President Aogan O Fearghail.
Ulster clinched a 32nd Interprovincial football title as they produced a strong second half to earn a 2-16 to 3-10 comeback win over holders Connacht.