Dakota Hudson tossed five strong innings to fuel the host St. Louis Cardinals to a 4-0 win over the San Francisco Giants on Saturday afternoon.