JT Marcinkowski made five saves en route to his second career shutout for San Jose. The victory was the third in a row for the Earthquakes following a nine-game winless streak in which they were beaten by four or more goals four times.
Vancouver lost its fourth consecutive game. The Whitecaps have been outscored 13-1 during the stretch.
Rose was done after receiving his second yellow card of the match in the 53rd minute. The Whitecaps played with 10 players for 22 minutes until Godoy landed a red card for violent conduct in which he bumped, slapped and eventually used his leg to knock San Jose midfielder Jackson Yueill to the ground.
Vancouver goalkeeper Evan Bush made five saves.
The Earthquakes had a 17-7 edge in shots. San Jose placed eight on target while Vancouver had five.
The game was scoreless at halftime before Espinoza struck in the 50th minute.
Defender Nick Lima passed the ball to Espinoza, and the midfielder turned and took a dribble and then sent a right-footed shot past Bush and into the left corner of the net.
Three minutes later, Rose picked up his second yellow card.
The Earthquakes increased their lead to 2-0 in the 66th minute when midfielder Carlos Fierro had the ball on the left flank and sent a pass toward Rios. The forward was stationed in front of the net and slammed a left-footed shot past Bush.
Marie, a midfielder, scored on a right-footed shot in the third minute of second-half stoppage time for his first career MLS goal. Defender Tommy Thompson recorded the assist after being credited with one on Rios' goal.
Vancouver's best chance to score came in the 26th minute. Rose put a header on net and Marcinkowski used his right hand to tip it over the net.