Richard (9-11) yielded a pair of walks and struck out five, pinpointing 71 of his 110 pitches for strikes. The right-hander recorded his second career shutout and first since 2010.
Will Venable's RBI double gave the Padres a 1-0 lead in the second inning and Yonder Alonso added an insurance run with a run-scoring single in the eighth.
The win gave San Diego a 5-1 homestead and its first home sweep of the season.
Cubs starter Jeff Samardzija (7-10) was the loser despite giving up just one run on four hits and two walks through seven frames. He struck out six.