Faits : A. Par contrat du 18 août 2010, H.X._ et F.X._ (ci-après: les bailleurs) ont remis à bail à Y._ et Z._ (ci-après: les locataires) une villa de neuf pièces et demie, située à.... Conclu initialement du 15 août 2010 au 31 juillet 2011, le bail se renouvelait ensuite tacitement d'année en année, sauf avis de résiliation notifié au moins quatre mois à l'avance. Le loyer mensuel net s'élevait à 9'000 fr. A._ AG (ci-après: A._), dont le siège est à Opfikon (ZH), a pour but le transport, le déménagement et la mise en dépôt de matériel. Elle dispose à Genève d'une succursale, dont le directeur est B._, au bénéfice de la signature individuelle. Le 25 mars 2012, les locataires ont signé une procuration en faveur de A._, autorisant cette société à "s'occuper de toutes les activités et services liés à [leur] relocation". Par lettre recommandée du 26 mars 2012 sur papier à en-tête de la société, A._ a résilié le bail pour le 31 juillet 2012 au nom des locataires, en précisant que ceux-ci allaient quitter la Suisse. La procuration du 25 mars 2012 était jointe au courrier, lequel portait la signature de C._ en qualité d'"Account Manager" et indiquait l'adresse électronique de la signataire ("xxx.com"). Des courriels ont été échangés entre H.X._ et C._. Ainsi, le 4 avril 2012, le premier a fait savoir à la seconde qu'il n'avait reçu aucun avis de retrait d'un pli recommandé envoyé le 28 mars 2012 et que la guichetière de la poste n'avait rien trouvé. Le même jour, C._ a envoyé à H.X._ le suivi "Track & Trace" de l'envoi n°...; il ressort de ce document qu'une lettre recommandée a été déposée le 28 mars 2012 à 10 h 22 à l'office postal de Genève La Praille, qu'elle est arrivée à l'office postal d'Yverdon-les-Bains le 29 mars 2012 à 7 h 54 et que le destinataire a été avisé le même jour à 10 h 20, avant que le courrier ne soit réacheminé à l'office postal d'Yverdon-les-Bains à 15 h 22. H.X._ a répondu immédiatement qu'il retournerait à la poste le lendemain, ce qu'il a dû effectivement faire puisqu'il a reconnu par la suite avoir reçu la résiliation le 5 avril 2012. Toujours par voie électronique, H.X._ a indiqué à C._, le 1 er mai 2012, qu'un congé pouvait certes être le fait d'un représentant, mais qu'en l'occurrence, elle ne disposait pas du droit de signer au nom de A._ et que la procuration du 25 mars 2012 ne donnait pas le pouvoir de résilier un bail. Par lettre du 11 juin 2012, le bailleur a informé A._ que la réception de la résiliation en date du 5 avril 2012 reportait l'échéance du bail d'un an, soit au 31 juillet 2013. Il ajoutait qu'il ne pouvait pas considérer qu'une résiliation, même anticipée, avait été donnée valablement aussi longtemps qu'il n'était pas en possession de la preuve des pouvoirs de C._ et d'une procuration des intimés autorisant A._ à résilier le bail. Dans une nouvelle procuration en faveur de A._ datée du 27 juin 2012, les locataires précisaient que la résiliation du 26 mars 2012 était intervenue conformément à leurs instructions. Pour sa part, B._ a attesté, dans une lettre du 17 juillet 2012 adressée au recourant, qu'il avait expressément autorisé C._ à rédiger et à signer la lettre de résiliation du 26 mars 2012. Par courriel du 26 juillet 2012, Me Laurent Strawson a adressé à H.X._ les lignes suivantes: "Monsieur, Vous trouverez en pièce jointe la procuration attestant des pouvoirs de Madame C._, conférés par A._ AG. Je joins également les procurations attestant des pouvoirs de A._ AG, respectivement de mes pouvoirs, conférés par Monsieur Y._ et Madame Z._. (...) " Seules les deux dernières procurations citées figurent sous la rubrique "pièces jointes" du courriel. L'état des lieux de sortie a eu lieu le 27 juillet 2012. La villa a été relouée à partir du 1 er octobre 2012. B. Le 3 mai 2013, les locataires ont introduit une procédure de conciliation, portant notamment sur la libération de la garantie locative. La conciliation a échoué. Par demande du 24 juillet 2013 rectifiée le 27 septembre 2013, les bailleurs ont conclu au paiement par les locataires d'un montant de 34'668 fr.50 avec intérêts, ainsi qu'à la libération en leur faveur, à titre de paiement partiel, de la garantie bancaire de 27'000 fr.; le capital réclamé comportait, entre autres, 18'000 fr. à titre de loyers pour août et septembre 2012, ainsi que 9'180 fr. en remboursement des frais d'agence engagés pour relouer la villa. Par jugement du 24 juin 2014, le Tribunal des baux du canton de Vaud a condamné les locataires à payer aux bailleurs la somme de 31'256 fr.90 avec intérêts et a libéré la garantie de loyer en faveur des bailleurs. Il a jugé notamment que les locataires sont débiteurs du loyer jusqu'à ce que la villa ait été relouée, soit le 1 er octobre 2012, ainsi que des frais en relation. Les locataires ont interjeté appel de ce jugement. Par arrêt du 1 er juin 2015, la Cour d'appel civile du Tribunal cantonal vaudois a partiellement admis l'appel et statué à nouveau en ce sens que les locataires doivent payer aux bailleurs le montant de 4'076 fr.90 avec intérêts, la garantie de loyer étant libérée à concurrence du capital et des intérêts en faveur des bailleurs et pour le solde en faveur des locataires. Contrairement aux juges de première instance, la cour cantonale a admis que le bail avait été valablement résilié pour le 31 juillet 2012. C. H.X._ et F.X._ forment un recours en matière civile. Ils concluent à la réforme de l'arrêt cantonal en ce sens que l'appel est rejeté et que le jugement de première instance est confirmé en tous points. Y._ et Z._ proposent de déclarer le recours irrecevable, subsidiairement de le rejeter. Les recourants se sont déterminés sur la réponse, puis les intimés ont déposé d'ultimes observations. Pour sa part, la cour cantonale se réfère aux considérants de son arrêt. Les recourants ont présenté une requête d'effet suspensif, rejetée par ordonnance de la Présidente de la cour de céans.