Johnson, a rookie, had 99 yards on 22 carries in his first career start and caught one of two TD passes by Carson Palmer, who led an offense that rolled up 524 yards. Williams scored his first career TD on a 35-yard run.
Larry Fitzgerald made his 1,000th reception and topped 1,000 yards for the seventh time. The Cardinals (10-2) have won six in a row, and seven of eight since losing 24-22 at home to St. Louis in Week 4.
The Rams (4-8) have lost five in a row and have been outscored 58-10 the last two. The team announced 51,115 tickets distributed, a season low and about 15,000 shy of a sellout.