The Ports got off to an ideal start when, as early as the fourth minute, Mark McAllister directed a composed finish beyond Dwayne Nelson after an attempted Paddy McNally clearance landed at his feet.
Portadown's early dominance was underlined after a quarter-of-an-hour when Michael Gault doubled their lead after the loose ball fell for him following a goalline clearance from Jim Ervin.
And as if it couldn't get any worse for the Sky Blues they fell further behind on 27 minutes after Peter McMahon was allowed, unchallenged, to cut through the defence to lob Nelson for Portadown's third.
As might have been expected, Ballymena began the second half the stronger with a particular threat coming from set pieces. Tony Kane perhaps came closest with a header from a David Cushley corner but the ball fell wide of the target.
They nearly pulled a goal back on the hour in somewhat extraordinary circumstances when McMahon was a whisker away from putting the goal into his own net after volleying an attempt clearance bizarrely against his own post.
United eventally managed to pull a goal back with 20 minutes remaining through substitute Darren Boyce with a deflected effort off Ross Redman past David Miskelly.
Then, literally moments later, Cushley almost reduced the deficit even more with a fizzing effort just past the upright - and not long after that Miskelly pulled off a fantastic stop to deny Boyce.
However, Glenn Ferguson's side failed to spark any more of a revival than that as Portadown comfortably held on to book their May 2nd date with Glentoran.
Ballymena United: Nelson, Ervin, McNally, Taylor, McBride, Kane, Thompson, Jenkins, McCutcheon, Tipton, Cushley subs Boyce (replaced McCutcheon 46), Surgenor (not used), Addis (not used), McCaul (not used), Teggart (replaced McNally 59)
Portadown: Miskelly, Conaty, Breen, O'Hara, Redman, Gault, Mouncey, Mackle, McAllister, Twigg, McMahon subs Judge (not used), Lyttle (not used), Brennan (not used), Murray (replaced Twigg 73), Stewart (not used)