Feldman (2-2) went four-plus innings and allowed eight runs -- just three earned -- on nine hits and two walks plus two wild pitches. The Astros had allowed just six unearned runs in their first 45 games.
But even though the defense let him down, he looked at it the other way.
"Tonight I really feel I let the guys down," Feldman said. "I didn't throw enough good pitches. I was missing my spots, hanging curveballs. I felt better actually today [than in my last start], I just didn't make enough pitches from the get-go.
"I feel healthy, and the arm feels good. I'll find it."
Feldman struck out four through the first four innings but couldn't get an out in the fifth, when the Angels scored three runs and improved their advantage to seven runs. One run scored on Freese's RBI grounder, which was booted by shortstop Jonathan Villar for the Astros' second error of the night.
A two-out error by first baseman Chris Carter on an Albert Pujols grounder led to three first-inning Angels runs, all unearned.
"We had a runner on first with two out; I should be able to get out of it, " Feldman said.
Feldman, who had walked one batter total in his past two starts, walked Raul Ibanez and Howie Kendrick to load the bases. Freese, just reactivated from the disabled list, singled in two, and Hank Conger singled in the third run.
"I hate walking guys," Feldman said, "but walks happen. It's just not being able to command the baseball with anything on it all night."
Manager Bo Porter is not concerned with the health of Feldman, who was on the disabled list from April 18 to May 8 because of tendinitis in his biceps. This was his third start back.
"I think he's fine," Porter said. "I actually asked him about it, and he said he's fine. Velocity wouldn't tell us there was anything wrong, he was at 90 to 91 [mph].
"I felt like tonight he just had the ball up in the zone. He usually pitches at the bottom of the zone. He didn't have his sharp breaking ball, and didn't keep the ball down."
The last time the Astros had two errors and two wild pitches in the same game was on Sept. 25, at Texas, in a 7-3 loss.
"We have been able to stay away from high-leverage, impact errors," Porter said. "Tonight, both those errors hurt us. But four of those five innings [by Feldman] were high-leverage."
Skaggs went seven innings, allowing five hits and a walk while striking out six.
Second baseman Jose Altuve singled in the sixth to extend his hitting streak to a career-high 12 games, and he added a double and a single. Designated hitter Jason Castro had two hits, as did Dexter Fowler.
"[Skaggs] attacked the zone with his fastball, and his breaking ball was really working," Porter said. "Altuve came back to the dugout early and said he was having trouble seeing the spin. When Altuve's having trouble picking up spin, you know it's good."
Fowler got the Astros' first hit leading off the fourth.
It took a late surge against the Angels' bullpen in the eighth and ninth to do it, but the Astros extended their streak of getting at least nine hits to 10 games.
Catcher Carlos Corporan was struck on the left elbow by a 91-mph Skaggs fastball leading off the third inning but stayed in the game.
"He'll be fine," Porter said. "Luckily, he had the pad on [where he had been struck by a pitch earlier in the season]."
Feldman was hit on the foot by a hard Trout comebacker in the fourth inning but said he is fine.