Ruben Tejada scored the winning run on a throwing error by catcher Buster Posey and the New York Mets beat the San Francisco Giants 5-4 Saturday after blowing a three-run lead moments earlier in one of the wackiest ninth innings imaginable.