Saints will now face Penybont – who got the better of Bala Town on penalties in the opening semi-final on Friday night – in the final.
Defender Danny Davies scored the only goal of the game to secure victory for Saints against their JD Cymru North opponents.
Saints started brightly and Declan McManus, their top goalscorer, headed an early chance over the crossbar.
Ryan Brobbel then went close when his 25 yard effort was pushed wide by goalkeeper Andy Coughlin.
But Saints did not have to wait too much longer for their 15th minute breakthrough as Brobbel’s inviting corner was turned in at the far post by defender Davies from close range.
Saints looked for further goals with a McManus effort into the side netting after he had rounded Coughlin.
Keston Davies and Jordan Williams then both sent headers over the crossbar, as did Kristian Platt at the other end for Colwyn Bay, who had impressively beat Connah’s Quay Nomads in the last round of the competition.
Leo Smith volleyed just over the crossbar from outside the penalty area for TNS just before half time.
Williams had the ball in the net for Saints in the second half, converting the rebound after Coughlin saved well from Danny Davies, but the effort was ruled out for offside.
Colwyn Bay, managed by Steve Evans, the former TNS defender and assistant manager, pushed for an equaliser as Saints had to work hard for their victory.
Goalkeeper Connor Roberts needed to be alert when he raced off his line to make a good save from James Kirby.
Then Roberts saved from Sam Jones as Saints progressed to the final.
TNS: Roberts, D. Davies, K. Davies, Astles, Marriott, Smith (Denny), Redmond, Clark, Brobbel (Robles), McManus, J. Williams. Subs not used: Cieslewicz, Baker, Harrison.