The attendance of 26,593 was San Francisco's smallest crowd since moving into AT&T Park in 2000.
Torres hit a one-out single off Edwin Moreno (0-2) and stole second. After Eugenio Velez struck out, Moreno intentionally walked Fred Lewis before Molina hit a ground-rule double that bounced over the wall in left-center.
Brian Wilson (1-0) pitched two shutout innings for the win and the Giants finished 4-1 on their homestand after losing six straight on the road.
The top sports headlines of the day
The Giants managed only four hits, but two came in the 10th. San Francisco won despite scoring fewer than three runs for the fifth time in six games.
Molina was originally scheduled for a day off after starting at catcher in the first 11 games.
San Francisco got another solid outing from its starting pitcher, a theme that's carried the Giants while their offense has struggled.
Left-hander Barry Zito pitched seven shutout innings, his longest outing of the year, and allowed just one runner past second base. Zito kept the Padres off balance with a mixture of snapping curves and a fastball that was his most effective of the young season. He struck out five and didn't walk a batter for the first time since June 25, 2008.
It didn't get easier for San Diego against San Francisco's bullpen.
Scott Hairston doubled off reliever Bob Howry leading off the eighth and was sacrificed to third, but left-hander Jeremy Affeldt replaced Howry and struck out Brian Giles and Adrian Gonzalez looking.
San Diego starter Chris Young was just as tough as Zito. The big right-hander allowed two hits over seven innings, retiring 12 of his first 14 batters.
Young didn't allow a hit until Travis Ishikawa's leadoff single in the fifth. He then walked Juan Uribe but got out of trouble by retiring the next three hitters in order.
The Giants got two runners on in the sixth but couldn't break through against Young, who had three strikeouts and four walks.