Weaver ( 12-7 ) allowed one run , walked one and struck out eight to surpass the win total of his rookie season a year ago , as he outpitched Chicago starter Jon Garland and dropped the Angels ' magic number for winning the AL West to eight games .