Faits: A. Par contrat du 29 mars 1982, H.Z._, qui est marié à F.Z._, a pris à bail un appartement au deuxième étage d'un immeuble sis chemin W._ à Genève, dont la propriétaire actuelle, et ce depuis une date indéterminée, est X._; initialement conclu pour une durée de trois ans et quinze jours, du 15 avril 1982 au 30 avril 1985, le contrat était ensuite renouvelable tacitement d'année en année; en dernier lieu, le loyer mensuel a été fixé à 1'776 fr., plus 240 fr. de charges. Par contrat du lendemain, H.Z._ a également loué une place de parking au deuxième sous-sol du même immeuble; le bail a été conclu pour une durée d'une année et quinze jours, du 15 avril 1982 au 30 avril 1983, et s'est ensuite renouvelé tacitement d'année en année; le loyer mensuel a été fixé en dernier lieu à 85 francs. En 1991, F.A._, mère de F.Z._, est arrivée en Suisse comme réfugiée politique et a été accueillie par les époux Z._ dans leur appartement. Le 1er octobre 1991, ceux-ci ont emménagé dans un appartement sis chemin V._ à Genève, dont ils sont copropriétaires. Par courrier du 2 octobre 1991, H.Z._ a indiqué à la régie alors en charge de l'immeuble qu'il entendait "continuer le bail de l'appartement sis chemin W._" et qu'il ne sous-louait pas ce logement. Depuis cette date, les époux Z._ ont continué à payer régulièrement le loyer de cet appartement; ils n'ont pas informé la bailleresse du changement d'occupants. A une date indéterminée, H.A._, également réfugié politique, a rejoint son épouse F.A._ dans l'appartement litigieux. Le 22 juin 1995, tous deux ont obtenu une autorisation d'établissement en Suisse. A teneur de certificats médicaux produits en instance cantonale, leur santé est précaire. A une date indéterminée, la régie d'alors a requis une "enquête, renseignements et filiation" visant à déterminer l'identité des personnes occupant l'appartement litigieux et à la renseigner sur les époux A._. Par courrier du 16 janvier 2006, ladite régie a mis les époux Z._ en demeure de mettre leur situation en conformité avec leurs contrats de bail et de réintégrer les locaux dans un délai de trente jours, à défaut de quoi les baux seraient résiliés. Par courrier du 27 janvier 2006, le conseil des époux Z._ a indiqué à la régie qu'il s'agissait d'une occupation familiale, F.A._ étant réfugiée politique et dépendante financièrement de sa fille; il précisait également que cette situation était connue de la régie, dont des employés avaient déjà rencontré F.A._. Par avis du 2 février 2006, la propriétaire a résilié les baux de l'appartement et de la place de parking pour le 31 mars 2006. B. Le 2 mars 2006, les locataires ont saisi la Commission de conciliation en matière de baux et loyers du canton de Genève d'une requête en constatation de l'inefficacité de la résiliation des baux. L'affaire ayant été déclarée non conciliée, les locataires l'ont portée devant le Tribunal des baux et loyers du canton de Genève qui, par jugement du 29 mai 2008, a déclaré les congés inefficaces. Saisie par la bailleresse et statuant par arrêt du 20 avril 2009, la Chambre d'appel en matière de baux et loyers du canton de Genève a confirmé le jugement du 29 mai 2008. C. La bailleresse (la recourante) interjette un recours en matière civile au Tribunal fédéral, dont elle sollicite qu'il annule l'arrêt du 20 avril 2009 et déclare valables les résiliations notifiées le 2 février 2006 avec effet au 31 mars 2006, avec suite de dépens des procédures cantonale et fédérale. Les locataires (les intimés) proposent la confirmation de l'arrêt entrepris et le déboutement de leur adverse partie de toutes ses conclusions, sous suite de dépens, et subsidiairement le renvoi de la cause aux juges cantonaux "afin de confirmer, si besoin était, la gratuité de la cession d'usage et la connaissance de la présence des époux A._ par les auxiliaires de la bailleresse".