Faits : A. Z._ (ci-après: l'aéro-club) est une association inscrite au registre du commerce depuis le 22 août 1997, qui a pour but notamment la formation de pilotes, la mise à leur disposition d'avions de tourisme et le développement de l'aviation. A.X._ et B.X._ ont pris contact avec l'aéro-club afin d'organiser un transport de U._ à destination de la France. L'aéro-club a ainsi affiché dans ses locaux un courriel de A.X._, dont il ressortait qu'elle cherchait un pilote pour effectuer le transport précité. Par courriel, il a confirmé à A.X._ que sa demande avait été affichée à la vue de tous les membres, en précisant qu'il lui souhaitait plus de succès ailleurs au cas où, malheureusement, elle ne trouverait pas de pilote au sein du club. En février ou mars 2012, A.X._ a été contactée par M._, pilote membre de l'aéro-club. Ce dernier a accepté de transporter A.X._ et B.X._, ainsi qu'une de leurs amies, en avion de U._ à Nantes, respectivement à la Roche-sur-Yon - lieu où l'amie devait être déposée - et retour. Le trajet était effectué contre rémunération. Jusqu'en août 2012, A.X._ et le pilote ont entretenu des contacts réguliers afin de planifier les différents aspects du vol, tels que la destination, l'escale, l'horaire, le nombre de passagers, le type d'avion et le prix du transport. A aucun moment, l'aéro-club n'est intervenu dans ces discussions. Le jour du vol, soit le 7 août 2012, le pilote a établi un titre de transport - sans qu'il se rappelle s'il a remis le titre avant le vol, après le vol ou s'il a simplement omis de le remettre aux passagers - indiquant son nom sous la case du transporteur aérien. Il a encaissé au comptant le prix convenu pour le transport, soit 1'450 fr., avant le décollage. L'aéro-club n'a rien encaissé de la part de A.X._ et B.X._. Un accident est survenu lors du vol. A la suite de cet accident, M._ a remboursé le prix du transport à A.X._ et B.X._. L'avion loué par le pilote était assuré en responsabilité civile auprès de L._ SA, laquelle a reconnu être l'assureur de "l'exploitant de l'appareil", à savoir l'aéro-club. B. A la suite de l'échec de la conciliation, A.X._ et B.X._ ont saisi le Tribunal civil de l'arrondissement de la Broye et du Nord vaudois d'une demande en paiement à l'encontre de l'aéro-club, qu'ils ont déclaré ne pas être en mesure de chiffrer mais dont la valeur litigieuse provisoire minimale s'élevait à 30'000 fr., dont 20'000 fr. en faveur de A.X._ et 10'000 fr. en faveur de B.X._, plus intérêts. À la requête de l'aéro-club, la procédure a été limitée à la question de la légitimation passive du défendeur. Par décision incidente du 1 er juillet 2016, le tribunal a rejeté les conclusions du défendeur tendant à faire constater l'irrecevabilité de la demande, dit qu'il avait la légitimation passive et ordonné la continuation de la procédure l'opposant aux demandeurs. Statuant le 29 mai 2017, la Cour d'appel civile du Tribunal cantonal vaudois a admis l'appel déposé par le défendeur et a rejeté la demande. C. Agissant par la voie du recours en matière civile, A.X._ et B.X._ concluent principalement à la réforme de l'arrêt cantonal en ce sens que la demande est admise, que Z._ a la légitimation passive et que la continuation de la procédure les opposant au défendeur est ordonnée. La cour cantonale a déclaré s'en référer aux considérants de son arrêt. Pour sa part, l'aéro-club a conclu principalement au rejet du recours. Sa réponse a été suivie d'une réplique des recourants.