Garland (12-8) allowed four hits and struck out three for the Padres, who have won the first two contests of this four-game series and have also captured eight of their last nine overall.
San Diego increased its lead atop the NL West to five games over San Francisco, which lost to Philadelphia on Tuesday.
Wells (5-11) allowed the one run on three hits with six strikeouts for the Cubs, who have lost five of their last seven overall.
The Padres scored the only run of the game in the first inning. Jerry Hairston, Jr. led off with a single and moved to second when Miguel Tejada walked. A long fly out off the bat of Adrian Gonzalez saw Hairston tag-up to third and the bases were loaded after Ryan Ludwick was hit by a pitch. The next batter was Chase Headley, whose groundout brought home Hairston.
In the bottom of the second, the Cubs had runners on first and second with no outs, but Blake DeWitt grounded into a double play and Koyie Hill struck out.
Chicago had a runner in scoring position with two outs in the third, but Aramis Ramirez flied out. Xavier Nady led off the bottom of the fourth with a double, but Alfonso Soriano grounded out, DeWitt popped out and Hill looked at a called third strike.
Garland was perfect over the next three innings.
Padres reliever Mike Adams came on for the home portion of the eighth. Kosuke Fukudome drew a one-out walk and moved to third when Starlin Castro singled, but Marlon Byrd grounded into a 6-4-3 double play.
San Diego closer Heath Bell yielded a leadoff single to Ramirez in the bottom of the ninth before he struck out Nady and Soriano. DeWitt then drilled a slider to deep right field, but Ludwick made a leaping catch against the ivy to preserve the win.
Bell earned his 36th save of 2010.
The last time the Cubs lost a game by a 1-0 score was June 16, 2007 — also against the Padres…The Cubs outhit the Padres 6-3…Both teams left seven runners on base…Attendance was 33,664.