Faits : A. A.a. A.A._ et B.A._ sont locataires depuis mai 1999 d'un appartement de quatre pièces dans un immeuble situé à la rue Z._ n° xxx à Genève. Ils occupaient déjà ce logement depuis 1985 en qualité de propriétaires, avant de le vendre en raison de la faillite subie par l'entreprise du prénommé. Le bail était conclu jusqu'au 31 mai 2000, mais pouvait ensuite être renouvelé tacitement d'année en année, conformément aux règles et usages locatifs faisant partie intégrante du contrat. Le loyer a été fixé à 1'920 fr. par mois charges comprises, soit 23'040 fr. par an. Le 25 février 2008, le bailleur d'alors a résilié le contrat pour le 31 mai 2008. Après que l'autorité de conciliation eut prononcé l'annulation du congé le 5 décembre 2008, le bailleur a déposé tardivement une demande devant le Tribunal des baux et loyers du canton de Genève; il l'a ensuite retirée par courrier du 5 mars 2009. La cause a été rayée du rôle selon un avis non daté du tribunal, qui a semble-t-il été reçu par l'une des parties à tout le moins le 10 mars 2009. A.b. Le 18 juin 2009, B._ a acheté l'appartement occupé par les locataires. Il était déjà propriétaire depuis 2006 d'un appartement de quatre pièces et demie dans un immeuble situé dans la même rue, au numéro yyy. Le nouveau bailleur travaille depuis le 11 octobre 2010 pour le Comité international de la Croix-Rouge (CICR), en mission au Brésil en qualité de médecin délégué depuis le 12 décembre 2011. Sa mission devait initialement prendre fin le 13 octobre 2012. Il bénéficie d'un contrat à durée indéterminée. Par avis officiel du 3 février 2012 notifié sous pli séparé à chacun des locataires, le bailleur a résilié le contrat pour le 31 mai 2012. Il a motivé le congé sur demande du conseil des locataires, en invoquant le fait que sa mission humanitaire au Brésil arrivait à son terme dans le courant de l'année 2012 et qu'il voulait s'installer à Genève dans le logement occupé par les locataires. Le 3 avril 2012, le délégué régional du CICR au Brésil a confirmé que la mission du bailleur dans ce pays devait être prolongée jusqu'au 31 décembre 2013; cette prolongation n'était pas prévue initialement, ni prévisible. B. B.a. Les locataires ont contesté judiciairement le congé. Par demande du 25 juillet 2012, ils ont conclu à son annulation, subsidiairement à une prolongation de bail échéant le 31 mai 2016. En cours de procédure, le Tribunal des baux et loyers a notamment entendu le bailleur, son ex-épouse et leur fille. A l'audience du 5 novembre 2012, le bailleur a expliqué qu'au moment où il avait acheté l'appartement occupé par les locataires, il vivait à la rue Z._ n° yyy dans un logement lui appartenant, qui comprend un salon, une belle chambre et une petite chambre utilisée comme remise. Il savait alors qu'il allait retravailler pour le CICR, partir en mission à l'étranger puis revenir à Genève. Il avait acquis un nouvel appartement dans l'optique de pouvoir en disposer à terme pour lui-même et laisser celui de la rue Z._ n° yyy à sa fille, qui y vivait actuellement; le compagnon de celle-ci vivait à l'étranger mais séjournait chez elle lorsqu'il se trouvait en Suisse. Dans sa procédure, le bailleur a allégué qu'il était parti au Brésil en octobre 2010. La fille du bailleur, née en 1991, a déclaré à l'audience du 5 novembre 2012 qu'elle était étudiante en deuxième année à l'Université de Genève. Ses études devaient durer encore cinq ans, après quoi elle comptait rester dans l'appartement. Entendue le 13 janvier 2014, l'ex-épouse du bailleur a précisé que celui-ci habitait seul au yyy de la rue Z._ jusqu'à son départ au Brésil; il y accueillait leurs enfants les week-ends et un soir par semaine. Leur fille était venue y habiter en octobre 2010, au début de ses études en relations internationales à Genève; à terme, il était prévu qu'elle y vive avec son ami. Le bailleur, après avoir voyagé toute sa vie, projetait de s'établir définitivement en Suisse pour être plus proche de leurs enfants. Une cohabitation entre le père et la fille apparaissait peu appropriée; au demeurant, la surface de l'appartement était trop petite. B.b. Dans une première décision du 22 février 2013, le Tribunal des baux a jugé que le congé était valable, ayant été notifié après la protection de trois ans conférée par l'art. 271a al. 1 let. e CO. Le 30 août 2013, la Cour de justice a annulé ce jugement; considérant que le congé avait été donné pendant la période de protection, la Cour s'estimait insuffisamment renseignée pour statuer sur l'existence d'un éventuel "besoin urgent" du bailleur au sens de l'art. 271a al. 3 let. a CO. En conséquence, elle a renvoyé la cause à l'autorité de première instance. B.c. Dans un nouveau jugement du 24 mars 2014, le Tribunal des baux a retenu un besoin urgent du bailleur. Il a déclaré valable le congé notifié pour le 31 mai 2012 et accordé aux locataires une unique prolongation au 31 mai 2014. Statuant le 8 décembre 2014 sur appel des locataires, la Cour de justice a confirmé la validité du congé; considérant toutefois que la situation s'était modifiée après la notification du congé et que l'on ignorait à quelle date le bailleur pourrait fermer la mission au Brésil et rentrer en Suisse, elle a octroyé une première prolongation de bail jusqu'au 31 mai 2015, en autorisant les locataires à restituer les locaux en tout temps moyennant un préavis de quinze jours "pour le quinze ou la fin d'un mois". B.d. Devant les instances cantonales, les locataires ont été représentés par l'ASLOCA. C. Les locataires, sans l'assistance d'un avocat, saisissent le Tribunal fédéral d'un recours en matière civile dans lequel ils concluent à l'annulation du congé. Le bailleur conclut au rejet du recours. L'autorité précédente se réfère à son arrêt.