Deux blessures au pouce et une au genou droit envoient Bonifacio sur la liste des joueurs blessés à trois reprises en 2012[8]. Il ne dispute que 64 matchs, le dernier le 21 août[9]. Il réussit cependant à voler 30 buts en 33 tentatives malgré ce temps de jeu réduit. Il joue surtout au champ extérieur à cette dernière année chez les Marlins[10].
Il ne frappe que pour ,218 avec les Blue Jays en 94 parties jouées en 2013 et réussit 12 vols de buts en 18 tentatives. Il joue au champ extérieur et au deuxième but pour les Jays.
Royals de Kansas City
Le 14 août 2013, les Blue Jays, déçus de la contribution de Bonifacio tant à l'attaque qu'en défense[12], le transfèrent aux Royals de Kansas City en échange d'un montant d'argent. Il frappe pour ,285 en 42 matchs des Royals, et réussit 16 vols de buts en seulement 18 essais.
Il termine la saison 2013 avec une moyenne de ,243 et 28 buts volés en 136 matchs au total pour Toronto et Kansas City.
Cubs de Chicago
Bonifacio est remercié par Kansas City alors que s'ouvrent les camps d'entraînement du printemps 2014. Il rejoint alors les Cubs de Chicago sur un contrat des ligues mineures[13]. En 69 matchs des Cubs avant d'être échangé à la date limite des transactions de 2014, il frappe pour ,279 avec deux circuits, 18 points produits, 35 points marqués et 14 buts volés.
Il ne frappe que 25 coups sûrs en 128 passages au bâton dans les 41 matchs joués pour les Braves. Bonifacio termine la saison 2014 avec 47 points marqués, 26 buts volés et une moyenne au bâton de ,259 en 110 matchs disputés au total pour les Cubs et les Braves.
White Sox de Chicago
Le , Bonifacio signe un contrat d'un an avec les White Sox de Chicago[15]. Il ne frappe que pour ,167 de moyenne au bâton en 47 parties des White Sox en 2015, puis est libéré le 18 août.
Retour chez les Cubs
Le 25 août 2015, Bonifacio revient à l'une de ses anciennes équipes, les Cubs de Chicago, de qui il accepte un contrat des ligues mineures[16].
Retour à Atlanta
En décembre 2015, Bonifacio rejoint l'une de ses anciennes équipes, les Braves d'Atlanta, sur un contrat d'une saison d'une valeur de 1,25 million de dollars[17].
De retour avec le club la saison suivante, il est libéré de son contrat par Atlanta le 6 juin 2017.