Toronto Blue Jays 19 listopada 2012 wraz z Markiem Buehrle, Joshem Johnsonem, Johnem Buckiem i Emilio Bonifacio przeszedł do Toronto Blue Jays w zamian za Hendersona Álvareza, Adeiny'ego Hechavarrię, Yunela Escobara, Jake'a Marisnicka, Anthony'ego DeSclafaniego, Justina Nicolino i Jeffa Mathisa. 12 kwietnia 2013 w meczu przeciwko Kansas City Royals odniósł kontuzję kostki, a do gry w MLB powrócił 26 czerwca. 6 sierpnia 2013 w spotkaniu ze Seattle Mariners zdobył 100. home runa w MLB po narzucie Féliksa Hernándeza.
Colorado Rockies 28 lipca 2015 przeszedł do Colorado Rockies między innymi za Troya Tulowitzkiego. Po raz pierwszy w barwach nowego zespołu zagrał dzień później w meczu przeciwko Chicago Cubs, w którym zaliczył single'a.
Powrót do New York Mets 25 czerwca 2016 podpisał niegwarantowany kontakt z New York Mets. Występy w organizacji rozpoczął w Brooklyn Cyclones (Class A-Short Season), a 28 lipca 2016 przeszedł do Binghamton Mets (Double-A). 5 lipca 2016 został powołany do 40-osobowego składu New York Mets, zastępując kontuzjowanego Davida Wrighta, grającego na trzeciej bazie. 20 maja 2017 w meczu przeciwko Los Angeles Angels of Anaheim zaliczył 2000.