ANAHEIM, Calif. (AP) -- Down to a roster that includes more than its share of minor league prospects and a couple of seasoned veterans trying to salvage something in an injury-ravaged season, the Los Angeles Angels at least had a chance this weekend to see how fundamental baseball is played.
Unfortunately, the Cleveland Indians gave the lessons.
Justin Masterson pitched effectively into the seventh inning, Nick Swisher hit a two-run homer off Jerome Williams, and Cleveland completed its first three-game series sweep in Anaheim since 1999 with a 3-1 victory Wednesday night.
"You try to get depth in your lineup and right now we're thin. But the guys are playing hard," Angels manager Mike Scioscia said. "We've got to keep plugging away. It's the only thing we can do. Some of these guys are trying to get some experience."
The Angels have lost 13 of their last 17 and are a season-worst 16 games under .500 this late in the season for the first time since 1999, the year before Scioscia became manager. All-Star outfielder Mike Trout missed his third straight game because of tightness in his right hamstring.
Williams (5-10) yielded two runs and six hits in 6 1-3 innings with six strikeouts and two walks. The right-hander is 0-8 with a 6.79 ERA over his last 12 starts and his only victory at home this season came in a 12-0 rout of Seattle on May 21.
"I just wanted to put up zeros and keep the guys in the ballgame." Williams said. "I feel positive. For the last three starts I had those mental lapses early in the game, in the fourth and fifth inning. Today I just wanted to stay focused for the whole game and get outs. Hopefully this is a stepping stone for me so I can keep on moving forward."
The Indians grabbed a 2-0 lead in the third when Michael Bourne led off with a triple and Swisher followed with his 15th homer, driving a 2-2 pitch into the right field pavilion. It was the 20th allowed this season by Williams, who is 1-13 in the last 18 starts in which he's allowed a home run.
"It seems like it's always one bad inning where something happens that loses the game for him, and the rest of the game he throws extremely well," Angels center fielder Peter Bourjos said. "It seems like he can't avoid that one inning -- like today. He did an awesome job, and it's tough that we didn't do a better job of scoring some more runs for him."
Masterson (14-9) allowed a run and five hits over 6 2-3 innings, tied a season high with five walks and struck out seven.
The right-hander, who made his big league debut against the Angels in April 2008, is 4-0 with a 1.87 ERA in nine career starts against them.
"His ball was moving pretty well and was obviously sinking," Bourjos said. "He was locating his slider pretty well down and away to righties. And on top of that, it was tough to see with the shadows in a 4 o'clock game."
The Angels scored in the sixth when Josh Hamilton led off with a single and came all the way around on Hank Conger's one-out double into the right field corner. Los Angeles put runners at the corners in the second and fourth innings, but Masterson escaped the first jam by striking out Bourjos and the second by retiring Andrew Romine on a flyball.
"It wasn't easy. I mean, you look up in the fourth inning and I think Justin had more balls than strikes," Cleveland manager Terry Francona said. "But he had good movement and he kind of bobbed and weaved through their lineup. He only had probably one inning where he really cruised."
The Angels then put the potential tying and go-ahead runs in scoring position in the seventh before Masterson fanned Erick Aybar with his 110th and final pitch for the second out. Rich Hill came on and retired Hamilton with a tremendous assist from third baseman Lonnie Chisenhall, who robbed the Angels' slugger of a hit with a diving stop in the hole and threw him out.
The Indians got an insurance run in the ninth when Mike Aviles scored on Dane De La Rosa's second wild pitch of the inning.
Cody Allen pitched a scoreless eighth for Cleveland and Chris Perez got three outs for his 20th save in 24 attempts. The Indians' bullpen had a 1.29 ERA and stranded 24 of 25 inherited baserunners during the team's 6-3 road trip.
"We've got guys in here that want to be in the playoffs, and we're working our butts off to try and get there," Swisher said.
NOTES: Swisher has two hits in nine career at-bats against Williams, both of them homers. ... Romine started at 2B for the first time this season in place of Howie Kendrick, who has missed 15 games because of a hyperextended left knee. ... Indians DH Jason Giambi doubled in the second inning, putting him within two hits of 2,000. ... Masterson, who became a full-time starter in 2010, reached the 1,000-inning mark for his career when he fielded Bourjos' leadoff bunt in the fifth and threw him out.