Weaver looks sharp in first start, Cardinals beat Red Sox 6-1