USC (31-27), which advanced past pool play for the first time in program history Thursday, will play either Stanford or top-seeded Arizona for the final Pac-12 title on Saturday.
California (36-19) had the bases loaded with no outs in the third inning before USC starter Tyler Stromsborg struck out Rodney Green Jr. and got Peyton Schulze to hit into a double play.
USC went ahead in the fourth when Dowd sent a three-run shot over the right-field wall for a 3-2 lead. Dowd added an RBI groundout in the sixth.
Cal tied the score 4-4 with two runs in the seventh, but USC put a pair on in the bottom half before Austin Overn brought one home with a sacrifice fly.
USC added two insurance runs when Dean Carpentier tripled in a run in the eighth and scored on a single by Ryan Jackson.