Faits : A. En 1963, A.B._, né en 1928, a pris à bail un studio au deuxième étage d'un immeuble comptant 39 appartements, sis à Genève. En 1965, il a quitté le studio pour un logement de trois pièces situé au premier étage du même immeuble. Son épouse, B.B._, née en 1934, a été engagée comme concierge de l'immeuble à partir du 1er février 1968 pour un salaire mensuel de 200 fr. A fin 1969, en raison de la naissance d'un deuxième enfant, A.B._ a manifesté son intérêt pour un appartement de quatre pièces et demie situé au septième étage de l'immeuble. Le 25 janvier 1971, un nouveau "contrat de travail pour le service de concierge" a été conclu. B.B._ figure dans l'entête comme partie, en qualité de concierge; le contrat a été signé par A.B._. La rémunération suivante était prévue: "Valeur des prestations en nature (loge) : App. 41 /2 pces, no 74, 7ème ét., Loyer annuel Fr. 5'700.-; Charges ann. Fr. 720.-; total Fr. 6420.-, soit par mois Fr. 535; moins valeur en espèces du salaire Fr. 335.-; différence restant à payer par le concierge par mois échu Fr. 200.- + AVS 10.40". Sous le titre "Loge", le contrat contient la clause suivante: "Le concierge s'engage expressément à la restituer en parfait état d'entretien à l'expiration du contrat, et à la rendre immédiatement disponible dès cette date; en cas de rupture du contrat pour justes motifs, la loge doit être immédiatement libérée et mise à disposition de l'employeur". Aucun contrat de bail n'a été signé en parallèle. En dernier lieu, le salaire s'élevait à 970 fr.80 par mois et le loyer mensuel se montait à 1'100 fr., charges comprises. A une date indéterminée, A._ est devenu propriétaire de l'immeuble. Par courrier du 29 novembre 2011, il a résilié le contrat de travail de B.B._ pour le 31 janvier 2012 et l'a priée de restituer la "loge de concierge" dans ce délai. Par jugement du Tribunal des baux et loyers du 29 juin 2012, la résiliation du bail a été déclarée nulle au motif qu'elle avait été notifiée uniquement à l'épouse et, de surcroît, sans avis officiel. Depuis la fin de l'engagement de B.B._ comme concierge, le bailleur fait appel à une entreprise de conciergerie externe. L'un des employés de cette entreprise occupe un appartement de l'immeuble. Par avis officiel du 17 avril 2012 notifié séparément à chacun des époux B._, A._ a résilié le bail pour le 31 octobre 2012; les locaux loués étaient alors désignés comme la "loge de concierges sise au 7ème étage". Sur requête, le bailleur a indiqué le motif de résiliation suivant: "Le contrat de travail a été résilié. Le couple B._ occupe l'appartement de fonction du concierge et dans ce cadre, il leur appartient de quitter le logement". Le congé a été contesté à temps. Faute de conciliation, les locataires ont porté la cause devant le Tribunal des baux et loyers du canton de Genève, concluant principalement à l'annulation du congé, subsidiairement à une prolongation de bail de quatre ans. Par jugement du 6 mars 2014, le tribunal a annulé le congé. Pour l'essentiel, il a retenu que l'appartement occupé par les locataires n'était pas spécifiquement doté d'équipements destinés ou propres à la conciergerie et que tout autre logement de l'immeuble pourrait accueillir un éventuel concierge. Il a dès lors considéré que le motif de congé ne paraissait pas digne de protection et que la résiliation du bail ne reposait pas sur un motif sérieux. Statuant le 8 décembre 2014 sur appel de A._, la Chambre des baux et loyers de la Cour de justice du canton de Genève a confirmé le jugement de première instance. Elle a conclu que le motif invoqué par le bailleur, à savoir le besoin de récupérer l'appartement afin de l'attribuer à un couple de concierges, apparaissait être un prétexte. B. A._ interjette un recours en matière civile. Il conclut à ce que le congé soit déclaré valable et à ce que les locataires soient déboutés de toutes autres ou contraires conclusions. A.B._ et B.B._ proposent principalement l'irrecevabilité du recours dont la motivation se limiterait à des considérations d'ordre général; à titre subsidiaire, ils concluent au rejet du recours. Les parties ont de part et d'autre déposé des observations supplémentaires.