The old cliche of 'goals win matches' rang true as Ballinasloe booked their place in the final at a rain-soaked Kingspan/Breffni Park.
It was a backs-to-the-wall display by the winners in the second half as they failed to score for the final 28 minutes of the game.
Armagh kingpins Port Mor had corner-forward Christopher Lennon dismissed after a second yellow card in the 27th minute but staged a storming second-half rally.
The Galway and Connacht champions did most of their best work in the first half to open up a 2-5 to 0-4 interval lead, Padraic Cunningham, from a penalty, and Michael Colohan bagging the goals.
Port Mor's cause seemed to be lost as they trailed by 2-7 to 0-5 after 36 minutes, but they rallied superbly. Ballinasloe came under relentless pressure in the closing stages, but they defended bravely to hold out.
Scorers – Ballinasloe: P Cunningham 1-1 (1-0 pen, 0-1f), M Colohan 1-0, L Lynch, K Kelly (2f) 0-2 each, P Whelehan, D McCormack 0-1 each Port Mor: D Curran 0-5 (4f), M Casey 0-2 (1f), G Traynor, S Nugent, C Donnelly 0-1 each
Ballinasloe – N King; E Fenton, D Nevin, J Shaughnessy; N Hynes, K Kelly, S Kenny; L Lynch, L Tierney; D Burke, P Cunningham, G Canavan; D McCormack, M Colohan, P Whelehan. Subs: S Kelly for E Fenton (h-t), J Twohig for M Colohan (48), R O'Healy for S Kenny (50)
Port Mor – G Kelly; G Curran, N Traynor, C McKenna; G McCrilly, L Donnelly, B Nugent; C Holmes, M Curran; M Casey, D Curran, M McCrory; C Lennon, G Traynor, S Nugent. Subs: J McBride for L Donnelly (27), C Donnelly for G McCrilly (55), G McGee for M Casey (59)
Ref – J Curley (Meath)