Skaggs, who is trying to win a spot in the Angels' rotation, allowed seven hits and two runs in 5 1-3 innings.
Giants starter Ryan Vogelsong allowed eight hits and four runs in four innings in his sixth appearance of the spring.
Los Angeles took the lead in the third when Hamilton doubled with one out and scored on Raul Ibanez's single. J.B. Shuck doubled in two runs.
Hamilton doubled in a run in the fifth.
Tyler Colvin homered in the eighth for San Francisco.