Alex Rios added a solo homer and drove in two runs for the White Sox, who are a major league-best 20-5 since June 9 and are a season-high six games over .500.
With the White Sox leading 1-0 in the second inning with two outs, Peavy jumped off the mound after throwing an outside fastball to Mike Napoli. He came off the mound raising his right arm and walked straight to the dugout with team trainer Herm Schneider walking beside him.
"Unfortunately we have to wait until tomorrow to see how he feels. When you take yourself out of the game like that it's never anything good. I got to wait to see what the doctors think and then we will figure what to do. I'm pretty sure right now I think he is going to be on the DL. I will talk to [general manager] Kenny [Williams] about it," said Guillen.
The team called the injury a back strain and said Peavy will have an MRI on Wednesday. Peavy said he feels pain on the top of his armpit and said he also experienced discomfort in his last start at Kansas City on June 30.
"I felt something in my last start. We had something going on, some bruising in this area after my last start that we saw and treated. I saw the doctor, and had a little strain in there that we treated. [I] played a little catch and knew I was going to feel it tonight and did a little bit. Obviously I did more than feel it on that one pitch and I knew I was done," said Peavy.
The White Sox contemplated skipping Peavy's turn in the rotation on June 17 at Pittsburgh because of an achy right shoulder, but after an MRI showed no damage, Peavy insisted on pitching two days later against Washington. In that game, he tossed a three-hitter for his fourth career shutout.
"When you throw a pitch and you feel the way I felt during and after that pitch it's just something I can't go on," Peavy said.
The former Cy Young winner came into Tuesday's start with a 7-6 record and 4.70 ERA, but he was 3-1 with a 1.55 ERA in his previous four starts.
White Sox reliever Tony Pena (2-1) picked up the win, allowing only one run on five hits in 4 1/3 innings. He struck out two and walked one.
"Great job. I think Tony is doing a tremendous job," said Guillen. "That was the key of the game right there, Tony Pena. We had a couple of home runs, but I think Tony was the key to win the game."
Torii Hunter had three singles for the Angels, who have lost four of five.
The White Sox finally were able to beat Weaver (8-4), who entered the game 3-0 with a 1.67 ERA in his last four starts. Weaver was 4-0 with a 0.52 ERA lifetime against the White Sox in five starts.
Weaver allowed four runs on seven hits in 6 1/3 innings. He struck out six and walked two in his first loss since winning three straight decisions.
I'm not going to lie, I got a little gassed out there. I wasn't able to make some pitches [later innings]. Towards the end I got a little tired, but no excuses you still have to make your pitches and those guys put some at-bats together and hit a couple out of the park," Weaver said.
After getting buzzed by Weaver on a 0-2 pitch near his head in the fourth inning, Rios homered off Weaver in the sixth to break a 1-1 tie.
"I was trying to go up. I consider myself to have some pretty good control. It was just one of those ones that got away and went up towards his head. You never like to do that to anybody and I just said hey [as Rios ran past him towards the Sox dugout after flying out in the fourth], said sorry to him. He paid me back," said Weaver.
In the seventh, Jones tagged Weaver for his 11th homer of the season. He broke an 0-for-17 slump with his first homer since June 3 against Texas. Dayan Viciedo followed with a single and Brent Lillibridge chased Weaver with a double, moving Viciedo to third. Juan Pierre followed with an RBI infield single off reliever Kevin Jepsen that Napoli wasn't able to handle.
Pierre doubled in the first inning and stole third and scored on Rios' fly out.
The White Sox stayed one game behind first-place Detroit in the AL Central.
Pena allowed a leadoff single to Hunter in the fourth inning and walked Hideki Matsui. Napoli followed with a RBI single. With runners on first and third with one out, Rivera was caught stealing, he was eventually tagged out in a rundown. Matsui, who was at third, never broke for home and was stranded after Kevin Frandsen flied out.
The game started after a 1-hour, 41-minute rain delay.
Angels INF Maicer Izturis, who has been on the DL since June 16 with a strained right forearm, will start swinging the bat Wednesday, according to Angels manager Mike Scioscia. ... White Sox RF Carlos Quentin missed the game with a sore left knee. He is listed day-to-day.