Daniel Jones threw for 321 yards and two touchdowns as the New York Giants made an improbable comeback after trailing by 20 at halftime to defeat the Arizona Cardinals 31-28.