Amarista got things going with a solo home run in the first inning and San Diego never trailed after. The Padres second baseman added a two-run double in the sixth for a 4-0 advantage.
Cameron Maybin also went deep and rookie catcher Yasmani Grandal knocked his third homer in four major league games for the Padres, who took the opener of a three-game series.
Richards (6-8) handled the Diamondbacks on two runs, allowing eight hits and one walk while striking out three.
Joe Thatcher recorded the final out for his first career save.
Trevor Cahill (6-7) was touched for four runs (two earned) on seven hits in a six-inning start for Arizona.
Chris Young belted a solo homer for the Diamondbacks.