Richard (5-9) allowed only two hits and worked around three walks while fanning two in winning his third consecutive start for the Padres.
Heath Bell earned his 25th save despite allowing a run in the ninth and recorded the final two outs with the potential tying run in scoring position -- securing San Diego's win in the first of a four-game series.
Chase Headley and Orlando Hudson drove in first-inning runs and Venable's solo smash in the top of the ninth handed the Padres a two-run lead.
San Francisco's Tim Lincecum (6-7) yielded three runs on seven hits through five frames.
Pablo Sandoval went 3-for-4 with a two-run homer for the National League West-leading Giants.