Weiland looks sharp as Astros top Yankees 4-3