Cal Poly (46-11), losing for the first time in 42 games when leading after six innings, will play Sacramento State, which eliminated Arizona State, 5-4.
The winner faces Pepperdine (41-16) in the championship final. Should the Waves fall, another game will be played Monday night.
Cal Poly sophomore right-hander Casey Bloomquist had given up just one hit and no runs through six innings before Pepperdine broke through for its two runs in the seventh on a couple of misplays by the Mustangs.
Brown (12-1) earned the victory, giving up one unearned run and three hits in eight innings with four walks and four strikeouts.
Pepperdine, which won despite committing four errors, three by third baseman Austin Davidson, was led on offense by Manny Jefferson with two singles and Hutton Moyer with a single and double.
College of Charleston 6,
The Cougars (43-17) will face the winner of an elimination game Sunday between Long Beach State and North Carolina.
The 49ers (33-25) led 2-1 in the top of the sixth after Ino Patron scored on a sacrifice fly by Michael Hill. But the Cougars scored four runs in the bottom of the sixth when Blake Butler scored from third on Carl Wise's sacrifice fly, Brandon Murray scored on a throwing error and Boykin homered.
Nick Pappas added a solo homer for Charleston in the eighth.
Bailey Ober pitched seven solid innings for the victory.
The Titans (33-23) will face Nebraska in an elimination game Sunday, with the winner having to beat Oklahoma State (47-16) twice to advance.
In the early game, Steven Reveles laid down a perfect suicide squeeze bunt, bringing home Jake Placzek from third with the winning run, as Nebraska rallied for three runs in the top of the ninth to escape with an 8-6 victory over Binghamton.