Old rivals Douglas B and Vagabonds B will meet in the final of the Bernard Schulte Shipmanagement Manx Plate on December 20.
Vagas edged their way past Ramsey B 13-5 at Mooragh Park, while Douglas eased past Castletown 38-22 at Poulsom Park.
All the action was in the first half at the Mooragh Park.
Ramsey took the lead via second row Richard Cowley. He plunged over for a try after good scrum pressure.
Vagas hit back with a penalty from Danny Williams, before prop Mark Allix put them in front with a well-taken try.
Just a few minutes before half-time, Vagas’ full back Tom Gascoyne went the length of the field for the decisive try.
Ramsey battled hard in the second half but just couldn’t find a way through a very aggressive Vagas defence.
In the other semi-final, there was a try fest at Poulsom Park.
A brace from speedster Ray Sharpe, plus supporting tries from Seb Jeanneau and Andy Jones, as well as three penalties and two conversions from Jones, were enough to sink a much improved Castletown.
Town hit back with two tries from Neil Cowley, a try from Ed Alderson and two conversions and a penalty from Sam Peel.