Richards (2-0) earned his second win in three starts since being recalled from Class AAA Salt Lake, holding the Diamondbacks to four hits and four walks while striking out five.
The 24-year-old right-hander has allowed only two runs over 20 innings during the span.
Ernesto Frieri collected his seventh save as the Angels won the three-game set.
Pujols socked a solo homer in the fourth inning and Mike Trout added a run-scoring double in the seventh to provide Los Angeles' offense.
Ian Kennedy (5-7) absorbed the loss despite surrendering only two runs on six hits over eight innings. He didn't allow a walk and struck out six.