Kelley L Cox-USA TODAY Sports

Cristian Espinoza scored twice on penalty kicks, including the deciding goal in the 65th minute, as the San Jose Earthquakes defeated the visiting Houston Dynamo 2-1 on Saturday in a gritty Western Conference match.

San Jose is undefeated in four of its last five games and has three wins over that stretch. Houston had a two-game winning streak -- and shutout streak -- snapped.

The Earthquakes (3-2-1, 10 points) turned their initial opportunity into the game's first goal when Houston's Teenage Hadebe was whistled for a hand ball in the penalty area, awarding San Jose a kick from the spot. The penalty was verified by VAR, and Espinoza quickly took advantage, beating Dynamo keeper Steve Clark into the bottom-left corner at the seven-minute mark.

The Dynamo turned to that spot to find the equalizer in the 42nd minute. Corey Baird's run into the area drew a foul on San Jose's Michael Baldisimo to set the table for Amine Bassi's penalty kick in the 42nd minute. Bassi's right-footed kick beat Earthquakes goalkeeper JT Marcinkowski at the center of the goal and tied the game at 1-1.

It was the third straight game that Bassi scored on a penalty kick; Houston won the first two, beating Austin FC and New York City FC at home.

Houston (2-3-0, six points) threatened in the 52nd minute as Baird ran into a pass from Adalberto Carrasquilla and uncorked a right-footed shot from a difficult angle on the right that forced a save by Marcinkowski.

Espinoza had a great scoring chance in the 57th minute when his hard shot after a pass from Jackson Yueill was kicked right into Clark. The ball got through the keeper's legs but not far enough before Clark scrambled back to swallow it up and out of harm's way.

The tie lasted until VAR confirmed a trip in the penalty box by the Dynamo's Ethan Bartlow on San Jose's Cade Cowell in the 65th minute. Espinoza was again good from the spot, this time beating Clark low to the right side to give the Earthquakes a 2-1 lead.

More must-reads:

TODAY'S BEST
Celtics' Jaylen Brown wins NBA Finals MVP
VAR controversy overshadows biggest upset in UEFA Euro history
Yankees ace making long-awaited return for AL East clash
Insider shares how Jets' Aaron Rodgers reacted to minicamp absences being unexcused
Brandon Aiyuk tells ex-teammate the 49ers 'don't want me back'
Mets thinking playoffs amid unexpected winning streak
Now is the perfect time for the Pelicans to trade Brandon Ingram
Bryson DeChambeau conquered his most difficult shot with career-defining moment
Les Miles levies a shocking claim against LSU in lawsuit
Is viewership up for the 2024 Stanley Cup Final?
Week 17 NASCAR power rankings: Ryan Blaney rises, but a star falls
Three-time Cy Young winner nearing 2024 debut for Rangers
Watch: Paul Skenes gives up his first first-inning run in his seventh start
Yankees' Anthony Rizzo to miss time with right arm fracture
Celtics announce big news about Kristaps Porzingis for Game 5
The Texas Longhorns just landed another elite quarterback recruit
Dodgers reveal timeline for Mookie Betts injury
Kylian Mbappe to undergo surgery after scary collision against Austria at Euros
Celtics' Kristaps Porzingis available to play in Game 5
Steelers make decision on key lineman

Want more sports news?

Join the hundreds of thousands of fans who start their day with Yardbarker's Morning Bark, the best newsletter in sports.