Melky Cabrera had three hits and drove in four runs Thursday for the San Francisco Giants, who gave Ryan Vogelsong robust run support for a change to beat the Miami Marlins 14-7.