Minnesota Vikings' Adrian Peterson piled up a season-best 212 yards on 24 carries to help his team to a 36-22 win over the St Louis Rams.