Ryan Jeffers blasted a three-run homer to help power the visiting Minnesota Twins past the St. Louis Cardinals 8-1 Saturday.

The Twins won for just the fifth time in their last 16 games while the Cardinals lost for the fourth time in seven games.

Luis Arraez came off the 10-day injured list and drove in two runs for the Twins. He started at third base in place of Josh Donaldson, who missed his second straight game due to hamstring muscle tightness.

Twins starting pitcher Bailey Ober held the Cardinals to one run on four hits in four innings while striking out six.

Jorge Alcala (3-5) relieved Ober and pitched two shutout innings to earn the victory. Caleb Thielbar, Juan Minaya and Alex Colome worked a scoreless inning each to close out the game.

Newsletter signup for email alerts

Losing pitcher Jake Woodford (2-3) allowed seven runs (five earned) on seven hits while lasting just three innings.

Yadier Molina hit two singles to tie Albert Pujols for the fourth-most hits in Cardinals history with 2,073.

The Twins struck first with two unearned runs in the first inning. With one out, Brent Rooker reached on Nolan Arenado's error and moved to third on Jorge Polanco's double.

Arraez hit a sacrifice fly, then Miguel Sano followed with an RBI double.

The Twins pushed their lead to 7-0 in the third inning. Rooker and Polanco hit singles to start the inning, then Arraez smacked an RBI double into the right field corner.

After Woodford walked Sano to load the bases, Trevor Larnach hit a sacrifice fly and Jeffers blasted his three-run homer.

The Cardinals got on the board in the fourth inning on singles by Arenado, Molina and Harrison Bader.

But the Twins increased their lead to 8-1 in the fifth inning on singles by Sano, Andrelton Simmons and Willians Astudillo.