Weaver pitches Angels past McKeon, Marlins 2-1