Faits : A. B._ a géré, puis racheté le fonds de commerce d'un café-restaurant situé en ville de Genève. Le 23 septembre 1996, il a conclu avec les propriétaires de l'immeuble concerné un contrat de bail à loyer portant sur les locaux servant à l'exploitation du restaurant. Il a aussi loué des places de parc. Par la suite, A._ est devenue propriétaire de l'immeuble. Le locataire a fondé une société anonyme (C._ SA) chargée de gérer le café-restaurant. Celle-ci a signé le 30 juin 2005 un contrat de gérance libre confiant à une tierce personne l'exploitation du café-restaurant, moyennant paiement de 17'000 fr. par mois. Par formule officielle du 6 mars 2007, la bailleresse a résilié les baux du locataire pour l'échéance contractuelle du 31 octobre 2007. Au printemps 2007, la régie immobilière mandatée par la bailleresse a emménagé dans l'immeuble abritant le café-restaurant. Le 12 juin 2007, la régie a soumis au locataire cinq nouveaux contrats de bail datés du 8 juin 2007, exigeant un loyer mensuel total de 6'000 fr. pour les locaux servant à l'exploitation du restaurant et pour les différentes places de stationnement. Le locataire a signé les baux. Le 15 janvier 2008, à l'occasion d'une séance réunissant le locataire et la régie, l'existence d'une sous-location a été évoquée; le locataire en a communiqué les conditions. Par courrier du 29 janvier 2008, la régie a reproché au locataire d'avoir sous-loué les locaux et l'a invité à lui communiquer dans un délai de 10 jours le nom du sous-locataire et les conditions de la sous-location. Le 21 février 2008, le locataire a transmis une copie du contrat de gérance libre et d'un avenant. Par courrier du 10 avril 2008, la bailleresse a déclaré invalider les cinq baux du 8 juin 2007 en arguant du fait qu'elle aurait refusé de les conclure si elle avait eu connaissance des conditions du contrat de gérance libre; à titre subsidiaire, elle a déclaré résilier ces baux en vertu de l'art. 257f al. 3 CO pour le 31 mai 2008, tout en faisant notifier au locataire cinq avis officiels de congé. Ultérieurement, soit le 19 mars 2009, le locataire et la société C._ SA ont résilié le contrat de gérance libre pour le 30 juin 2009; la cour de céans a confirmé la validité de cette résiliation (arrêt 4A_644/2011 du 10 février 2012). B. B.a. Tant le locataire que la bailleresse ont saisi l'autorité de conciliation, qui leur a délivré des autorisations de procéder. Le 31 mars 2009, la bailleresse a déposé une demande devant le Tribunal des baux et loyers du canton de Genève tendant à faire confirmer l'invalidation des cinq baux du 8 juin 2007 pour cause d'erreur essentielle, subsidiairement à faire constater l'efficacité des congés signifiés le 10 avril 2008, et dans les deux cas à faire évacuer le locataire. Le 21 avril 2009, le locataire a saisi ce même tribunal d'une demande visant à faire constater l'inefficacité ou l'illicéité du congé notifié le 6 mars 2007, subsidiairement à faire annuler les résiliations du 10 avril 2008. Les deux causes ont été jointes. Par jugement du 14 novembre 2012, le Tribunal des baux a constaté la validité du congé signifié le 6 mars 2007 pour le 31 octobre 2007, en relevant que cette question avait déjà été tranchée dans son jugement définitif du 17 février 2009. Le tribunal a par ailleurs constaté l'inefficacité des congés donnés le 10 avril 2008 pour le 31 mai 2008 et débouté les parties de toutes autres conclusions. B.b. La Cour de justice a confirmé cette décision par arrêt du 10 février 2014. Les motifs de cet arrêt peuvent succinctement se résumer comme il suit: la bailleresse - respectivement la régie chargée de la représenter - ne pouvait pas ignorer l'existence d'une gérance libre lorsqu'elle a conclu les nouveaux baux du 8 juin 2007; elle s'était accommodée de la situation sans chercher à l'éclaircir. L'erreur essentielle n'étant pas établie, il n'y avait pas matière à invalider les contrats. Quant aux congés signifiés le 10 avril 2008, ils étaient inefficaces. D'une part, la bailleresse ne pouvait pas refuser son consentement à la sous-location, dont les conditions n'étaient pas abusives. D'autre part, elle ne pouvait pas résilier le bail principal à titre anticipé (art. 257f al. 3 CO) sans avoir au préalable sommé le locataire de mettre fin au contrat avec le sous-locataire/gérant, ou de mettre en conformité les conditions dudit contrat. La résiliation inefficace ne pouvait pas être convertie en congé ordinaire, ni en congé pour justes motifs au sens de l'art. 266g CO. C. La bailleresse saisit le Tribunal fédéral d'un recours en matière civile, en l'invitant à constater que les cinq baux datés du 8 juin 2007 ont été valablement invalidés, subsidiairement à constater l'efficacité des congés signifiés le 10 avril 2008, plus subsidiairement à reporter les effets de ces congés au 31 octobre 2008, et à ordonner dans les trois cas l'évacuation du locataire. Le locataire intimé conclut au rejet du recours. L'autorité précédente se réfère à son arrêt.