W grudniu 2009 w ramach wymiany zawodników przeszedł do New York Yankees. W sezonie 2011 zaliczył najwięcej w lidze RBI (119) i zdobył 41 home runów (2. wynik w lidze), w głosowaniu do nagrody MVP American League zajął 4. miejsce (za Justinem Verlanderem, Jacobym Ellsbury i José Bautistą) i otrzymał nagrodę Silver Slugger Award. 6 maja 2012 w spotkaniu z Kansas City Royals zaliczył 1000. uderzenie, zaś 26 sierpnia 2012 w meczu przeciwko Cleveland Indians zdobył 200. home runa w karierze.
W grudniu 2013 jako wolny agent podpisał czteroletni kontrakt wart 60 milionów dolarów z New York Mets. 17 września 2016 w meczu z Minnesota Twins został pierwszym zawodnikiem w historii klubu, który zdobył dwa home runy – dającego wyrównanie i zwycięstwo – w dodatkowych zmianach.
W 2016 za działalność charytatywną otrzymał Roberto Clemente Award. 19 sierpnia 2017 został zawodnikiem Los Angeles Dodgers. W styczniu 2018 podpisał roczny kontrakt z Toronto Blue Jays, jednak w lipcu 2018 został oddany do Milwaukee Brewers. W styczniu 2020 ogłosił zakończenie zawodniczej kariery.