Roy Halladay has pitched a four-hitter and Bengie Molina and Alex Rios homered at home to lead Major League Baseball's Toronto Blue Jays to a 5-1 win over the struggling Los Angeles Angels.

Los Angeles starter Jeff Weaver took the loss Monday night, after giving up five runs and seven hits in six and one-third innings. The Angels have now lost nine of their last 11 games.

Elsewhere in the American League, Hank Blalock went four-for-four to lead the Texas Rangers to a 6-4 win over the Minnesota Twins in Arlington, Texas. Ranger batters roughed up Twins starter Brad Radke who allowed six runs and 11 hits in five innings.

In Kansas City, Doug Mientkiewicz drove in a pair of runs and John Buck hit his first home run of the season to lead the Royals to a 4-3 win over the Cleveland Indians.

In Seattle, Jose Lopez had two hits and drove in three runs as the Mariners rallied for a 6-3 win over the Tampa Bay Devil Rays.

In the National League, Matt Holliday hit two home runs to lead the visiting Colorado Rockies to a 6-2 victory over the St. Louis Cardinals. It was the Rockies fourth straight victory.

The San Francisco Giants snapped a four-game losing streak, as Pedro Feliz hit a two-run homer and singled in a run to lead the host Giants to a 7-5 win over the Houston Astros.

The San Diego Padres won their ninth straight game as Khalil Greene homered and Mike Cameron drove in three runs to beat the visiting Chicago Cubs 8-3. The Cubs have now lost seven in a row.

Some information for this report was provided by AFP, and AP.