Faits :
A.
A.a. La société A._ SA a son siège à..., où elle exploite un garage. Elle dispose d'une succursale dans le canton de Vaud - initialement à..., puis à... -, où est exploité un autre garage.
A.b. Par contrat de travail du 6 mai 2013, la succursale de A._ SA a engagé Z._ en qualité d'électricien automobile pour une durée indéterminée.
Celui-ci a entretenu une relation tendue avec son collègue B._. Les tensions semblent avoir débuté environ deux ou trois mois après l'entrée en fonction de Z._. Celui-ci a emprunté l'un des outils de son collègue en se servant dans la caisse à outils de celui-ci. Selon M._, responsable administratif de la succursale, le garage fournit des caisses à outils aux employés; lorsqu'il leur manque un outil, ils peuvent aller le chercher chez leurs collègues. En l'occurrence, B._ s'était créé sa propre clé à laquelle il semblait tenir particulièrement. Quand il a vu son collègue se servir dans sa caisse à outils, il s'est énervé. Z._ l'a alors traité de «pauvre type», ce qui ne lui a pas plu. Le responsable administratif a demandé aux deux employés de travailler dorénavant chacun de leur côté.
A.c. Le 26 mars 2014, Z._ a été mis en garde pour avoir endommagé une caméra.
Le 20 mai 2014, une «remarque» a été faite à son encontre; il lui était reproché de timbrer avant d'aller au vestiaire, alors qu'il devait le faire après, lorsqu'il était prêt à commencer son travail.
Le 12 juin 2014, Z._ a reçu un avertissement pour ne pas avoir suivi des cours de formation continue obligatoire sur Internet.
A.d. Durant l'été 2014, B._ aurait donné un coup d'épaule à son collègue en passant à côté de celui-ci, ce que le prénommé a contesté lorsqu'il a été auditionné dans le cadre de la présente procédure (cf. let. B infra). Z._ a rapporté cet incident au responsable administratif, qui a convoqué les deux protagonistes d'abord séparément puis ensemble, pour leur signifier qu'il ne voulait plus voir «ce genre de gamineries».
A.e. Le 29 septembre 2014, alors que B._ revenait de deux semaines d'arrêt de travail en raison d'une opération chirurgicale occasionnée par des problèmes rénaux, son collègue N._ lui a rapporté des propos que Z._ aurait tenus en son absence, selon lesquels ses problèmes rénaux venaient du fait qu'il «ne se servait pas assez de sa bite». B._ s'est alors rendu dans la salle de pause des employés où se trouvait Z._; il a dit à ce dernier qu'il était «amnésique, qu'il n'avait pas de couilles», ajoutant «elle est belle la France avec ça». Il est ensuite sorti et a proposé à Z._, qui l'avait rejoint, d'aller s'expliquer plus loin. Une fois sur le parking de l'entreprise, les deux hommes ont entrepris de se battre. B._ dit avoir cherché à immobiliser son collègue au sol, mais l'intéressé se serait évanoui avant qu'il ait le temps de lui porter un coup. Quant à Z._, il soutient avoir reçu un coup de poing qui l'aurait fait chuter et aurait été la cause de son évanouissement. Le chef d'atelier a appelé une ambulance qui a conduit Z._ à l'hôpital, où une minerve a été posée; il l'a portée pendant deux à trois semaines.
A la suite de cette altercation, le prénommé a été en incapacité de travail.
Le 8 octobre 2014, il a déposé une plainte pénale contre B._.
Considérant que cette bagarre était digne d'une cour d'école, le directeur de la succursale O._ a fait la leçon aux deux protagonistes en leur disant qu'il ne voulait plus que cela se produise. Il a demandé à chacun d'expliquer par écrit ce qui s'était passé.
A.f. Environ deux semaines après l'altercation, Z._ a rencontré le directeur précité. Il lui a demandé de licencier B._, ou alors de trouver une solution pour éviter qu'il soit confronté à celui-ci, car il ne pouvait moralement pas supporter de reprendre le travail et de se retrouver en présence de son agresseur.
Le directeur lui a cependant expliqué qu'il avait décidé de garder les deux employés: Z._ parce qu'il était père de famille, et B._ parce qu'il était un bon mécanicien et spécialiste de la marque.... Il a aussi dit à Z._ que s'il trouvait quelque chose de mieux, il devait saisir l'occasion et pouvait compter sur lui pour des conseils.
Environ un mois et demi après le début de son arrêt de travail, Z._ a reçu un téléphone du responsable administratif, qui lui a demandé s'il allait bien et s'il pouvait suivre les cours... depuis chez lui.
A.g. Par courrier du 15 janvier 2015, la succursale de A._ SA a résilié le contrat de travail de Z._ pour le prochain terme du 31 mars 2015, en invoquant les avertissements dont il avait été l'objet et son comportement avec l'un de ses collègues de travail.
Le travailleur a déclaré s'opposer au licenciement par courrier du 13 mars 2015. L'employeuse lui a opposé une fin de non-recevoir le 1 er avril 2015.
L'incapacité de travail a pris fin le 31 mai 2015. Dans l'intervalle, Z._ s'est rendu plusieurs fois chez le médecin. Il a consulté un généraliste, un kinésithérapeute et une psychologue.
A.h. Par jugement du 28 septembre 2015, le Tribunal de police de l'arrondissement de Lausanne a condamné B._ pour lésions corporelles simples. Il a retenu que les faits étaient mineurs et que le plaignant avait sa part de responsabilité dans cette affaire.
B.
B.a. Par requête de conciliation du 18 septembre 2015, Z._ a assigné A._ SA devant le Tribunal de prud'hommes de l'arrondissement de Lausanne. Le 23 février 2016, il a déposé une demande concluant au paiement de 30'000 fr. Il requérait une rémunération pour les heures consacrées à la formation obligatoire, respectivement une indemnité pour tort moral et le remboursement de frais médicaux - prétentions fondées sur le fait que la succursale, en violation de son devoir de protection (<ref-law>), avait toléré pendant plusieurs mois le comportement hostile de B._ à son encontre. Il exigeait enfin une indemnité pour congé abusif (<ref-law>).
B.b. Entendu comme témoin, le directeur de la succursale a fait valoir qu'il avait dû se séparer du demandeur parce que son absence prolongée prétéritait le garage qui manquait de personnel. Il a par ailleurs concédé que l'organisation séparée des garages de... et de...ne constituait pas en soi un obstacle à un transfert d'un des employés, même si cette mesure pouvait engendrer certains désagréments; il estimait toutefois qu'il n'y avait pas de raison d'envisager un transfert.
L'ancien employé P._ a déclaré qu'il ne s'entendait pas particulièrement bien avec B._, et que c'était même à cause de lui qu'il avait quitté son emploi.
B.c. Le Tribunal prud'homal a alloué au demandeur 956 fr. 25 bruts (sous déduction des charges sociales) pour les heures consacrées à la formation obligatoire. Il a rejeté la demande pour le surplus, considérant notamment que le congé n'était pas abusif.
B.d. Statuant sur appel du demandeur, le Tribunal cantonal vaudois a réformé ce jugement et condamné en définitive la défenderesse à payer au demandeur 956 fr. 25 bruts (sous déduction des charges sociales), plus 12'892 fr. à titre d'indemnité pour congé abusif.
C.
La défenderesse a saisi le Tribunal fédéral d'un recours en matière civile visant à obtenir qu'elle soit condamnée au seul montant de 956 fr. 25, à l'exclusion de toute indemnité pour congé abusif.
L'autorité précédente s'est référée à son arrêt.
Le demandeur a conclu au rejet du recours. Il a sollicité l'assistance judiciaire, puis a déclaré renoncer à celle-ci.
La défenderesse a déposé une réplique que le demandeur a renoncé à commenter.

Considérant en droit :
1.
Les conditions de recevabilité du recours en matière civile sont réalisées sur le principe, notamment celles afférentes au délai de recours (<ref-law> en lien avec les art. 45 al. 1 et 46 al. 1 let. a LTF) et à la valeur litigieuse minimale de 15'000 fr. prévalant pour ce conflit de droit du travail (<ref-law>).
2.
2.1. Le recours peut être formé pour violation du droit fédéral, notion qui inclut le droit constitutionnel (<ref-law>; <ref-ruling> consid. 1.4).
Le Tribunal fédéral applique le droit d'office (<ref-law>). Eu égard, toutefois, à l'exigence de motivation qu'impose l'<ref-law>, sous peine d'irrecevabilité (<ref-law>), il n'examine d'ordinaire que les griefs invoqués, sauf en cas d'erreurs juridiques manifestes (<ref-ruling> consid. 2 p. 116). Une exigence de motivation accrue prévaut pour la violation des droits constitutionnels tels que la prohibition de l'arbitraire (art. 9 Cst.). Selon le principe d'allégation, le recourant doit indiquer quel droit ou principe constitutionnel a été violé, en expliquant de façon circonstanciée en quoi consiste la violation (<ref-law>; <ref-ruling> consid. 2.2; <ref-ruling> consid. 3.2).
2.2. Le Tribunal fédéral statue sur la base des faits établis par l'autorité précédente (<ref-law>). Il ne peut rectifier ou compléter les constatations de l'autorité précédente que si elles sont manifestement inexactes ou découlent d'une violation du droit au sens de l'<ref-law> (<ref-law>). «Manifestement inexactes» signifie ici «arbitraires» au sens de l'art. 9 Cst. (<ref-ruling> consid. 2 p. 117; <ref-ruling> consid. 1.5).
La critique de l'état de fait retenu est soumise au principe strict de l'allégation évoqué ci-dessus (<ref-ruling> consid. 2.3 p. 266 et les références). La partie qui entend attaquer les faits constatés par l'autorité précédente doit donc expliquer clairement et de manière circonstanciée en quoi ces conditions seraient réalisées (<ref-ruling> consid. 1.3.1 p. 18 et les références).
En matière d'appréciation des preuves, il y a arbitraire lorsque le juge s'est manifestement mépris sur le sens et la portée d'un moyen de preuve, lorsqu'il a omis, sans raison sérieuse, de tenir compte d'un moyen important propre à modifier la décision attaquée, ou encore lorsqu'il a tiré des déductions insoutenables à partir des éléments recueillis. L'arbitraire ne résulte pas du seul fait qu'une autre solution serait concevable, voire préférable (<ref-ruling> consid. 4.2).
3.
A ce stade, la défenderesse conteste le caractère abusif du licenciement, subsidiairement le montant de l'indemnité mise à sa charge. C'est le lieu de rappeler quelques principes théoriques.
3.1. Chaque partie peut décider unilatéralement de mettre fin à un contrat de travail de durée indéterminée (<ref-law>). Ce droit est cependant limité par les dispositions sur le congé abusif (<ref-law>). L'<ref-law> énumère une liste non exhaustive de cas de résiliation abusive; il s'agit d'une concrétisation de l'interdiction générale de l'abus de droit (<ref-ruling> consid. 2.3; <ref-ruling> consid. 4.2 p. 538).
Le caractère abusif du congé peut résider entre autres dans le motif répréhensible qui le sous-tend - par exemple lorsque l'autre partie a fait valoir de bonne foi des prétentions résultant du contrat de travail (art. 336 al. 1 let. d CO) -, dans la manière dont il est donné, dans la disproportion évidente des intérêts en présence, ou encore dans l'utilisation d'une institution juridique de façon contraire à son but (<ref-ruling> consid. 2.3 p. 515; <ref-ruling> consid. 2.2 et 2.4). L'abus est en principe retenu lorsque le motif invoqué n'est qu'un simple prétexte tandis que le véritable motif n'est pas constatable (<ref-ruling> consid. 4.1 in fine; cf. aussi <ref-ruling> consid. 2.1 p. 62 en matière de bail).
Pour qualifier un congé d'abusif, il faut se fonder sur son motif réel. Déterminer le motif d'une résiliation est une question de fait (<ref-ruling> consid. 2.3 in fine p. 515). En revanche, savoir si le congé est abusif relève du droit (arrêt 4A_714/2014 du 22 mai 2015 consid. 3.3).
3.2. En l'occurrence, la Cour d'appel a constaté que l'employeuse avait signifié le congé après l'expiration du délai de protection de l'<ref-law>, en invoquant les avertissements dont le travailleur avait été l'objet et son comportement avec l'un de ses collègues. La Cour a relevé que ces avertissements remontaient à plus de trois mois et que l'employeuse, après l'altercation du 29 septembre 2014, avait émis le souhait de garder les deux employés à son service. Cela signifiait donc qu'aux yeux de celle-ci, ces éléments ne constituaient pas un motif suffisant pour résilier le contrat du travailleur. Il était difficile d'apporter la preuve de motifs de nature psychique. En l'espèce toutefois, tout portait à croire que l'employeuse avait congédié le travailleur parce qu'il avait indiqué ne plus pouvoir envisager de travailler avec son collègue. Ce faisant, le travailleur avait demandé que des mesures destinées à protéger sa personnalité soient prises sur son lieu de travail, conformément à l'<ref-law>; or, plutôt que d'envisager de telles mesures dans l'attente du retour du travailleur, l'employeuse avait préféré résilier son contrat de travail. Elle n'avait envisagé aucune mesure particulière alors qu'il en existait. Lors de son audition, le directeur de la succursale avait concédé que l'organisation séparée des garages de... et de...n'était pas un obstacle à un transfert; il estimait toutefois qu'il n'y avait pas de raison d'envisager un tel transfert. Or, si on pouvait admettre que les incidents antérieurs au 29 septembre 2014 ne justifiaient pas d'autres mesures qu'une remise à l'ordre, il en allait différemment après cette date.
Après l'ouverture de la procédure civile, l'employeuse avait fait valoir que l'absence prolongée du travailleur compliquait l'activité du garage. Il était étonnant que ce motif n'ait pas été invoqué dans la lettre de licenciement du 15 janvier 2015. Quoi qu'il en soit, l'employeuse n'avait pas établi la véracité de ce motif, par exemple en démontrant qu'elle avait dû engager un autre collaborateur. Le directeur du garage avait tout au plus évoqué des heures supplémentaires accomplies par le reste du personnel, sans donner plus de précision quant à la quotité de ces heures.
En définitive, la Cour d'appel a jugé qu'il existait suffisamment d'indices pour faire apparaître comme non réels les motifs avancés par l'employeuse. Le licenciement devait être qualifié d'abusif, notamment au sens de l'art. 336 al. 1 let. d CO.
3.3. La constatation selon laquelle les motifs de congé invoqués dans la lettre du 15 janvier 2015 (avertissements et comportement avec son collègue) ne sont pas réels tient au fait que malgré ces éléments, l'employeuse a dans un premier temps émis le souhait de garder les deux employés. On ne discerne pas d'arbitraire dans cette appréciation, et la défenderesse n'en apporte du reste pas la démonstration. Par ailleurs, elle ne critique pas le raisonnement ayant conduit à exclure l'authenticité du motif tiré des prétendus problèmes d'organisation créés par l'absence du demandeur. Ces points sont dès lors acquis.
La défenderesse ne conteste pas à proprement parler le lien entre la requête de mesures de protection émise par le demandeur et le congé. Elle plaide toutefois que celui-ci a posé un ultimatum disproportionné en exigeant que son collègue soit renvoyé, faute de quoi lui-même refusait de réintégrer le garage; or, le peu de gravité des faits ne justifiait pas qu'elle prît une telle mesure à l'encontre de l'autre employé. La défenderesse aurait trouvé une solution adéquate en tentant de «calmer les choses» et en proposant aux deux employés de rester dans l'entreprise; le risque de confrontation était de son point de vue inexistant.
Force est de constater que cette argumentation se fonde sur une version des faits qui diverge de celle retenue dans l'arrêt attaqué.
En premier lieu, on ne saurait nier le risque de nouvelles confrontations si les deux employés avaient dû continuer à travailler dans les mêmes conditions; or, tel est bien ce que proposait la défenderesse en émettant le souhait de garder les deux employés, sans prendre de mesures particulières. Après la bagarre du 29 septembre 2014, il était évident que la méthode consistant à sermonner les deux employés en faisant appel à leur responsabilité d'adultes et en leur recommandant de travailler chacun de leur côté avait fait long feu. Les esprits ne pouvant qu'être échaudés après un tel événement et le dépôt d'une plainte pénale.
En deuxième lieu, prétendre que le demandeur a refusé de réintégrer son poste au motif que la défenderesse ne voulait pas prendre la mesure disproportionnée consistant à licencier son collègue constitue une réécriture de l'état de fait. Deux semaines seulement après la bagarre, le demandeur a certes incité la défenderesse à licencier son collègue, mais en ajoutant qu'il convenait à défaut de trouver une solution pour qu'il ne soit plus confronté à celui-ci dès lors qu'il ne pouvait moralement pas supporter de se trouver en sa présence. L'autorité précédente pouvait en déduire sans arbitraire que ce faisant, le demandeur requérait des mesures de protection de sa personnalité, et non pas une ultima ratio consistant à licencier son collègue à l'exclusion de toute autre mesure. En outre, la défenderesse déduit le refus de réintégrer l'entreprise du fait que le demandeur n'était pas réellement incapable de travailler. Tout en évoquant sa «prétendue incapacité», elle admet que celle-ci était attestée par de «nombreux certificats médicaux» et ne fournit pas le début d'une démonstration établissant qu'il serait arbitraire de retenir une telle incapacité, alors qu'il est constant qu'il a consulté un généraliste et une psychologue. L'argument selon lequel il aurait été vain de proposer une mesure telle que le transfert de l'un ou l'autre employé dans le garage de... se trouve ainsi privé de fondement, la défenderesse elle-même n'invoquant pas d'autres éléments qu'un prétendu refus de principe du demandeur.
En troisième lieu, pour démontrer qu'elle n'avait pas à prendre de mesures particulières, et notamment pas contre l'autre employé, la défenderesse tente indûment de minimiser la faute de celui-ci et d'aggraver les torts du demandeur. Les juges pénaux ont certes constaté que les faits étaient mineurs et que le demandeur avait sa part de responsabilité dans l'affaire; l'autorité précédente a du reste retenu une faute concomitante du demandeur au moment de statuer sur l'indemnité. Il n'en demeure pas moins que le comportement de l'autre employé a débouché sur une condamnation pénale. Si le demandeur avait certes déjà suscité des mises en garde ou remarques de la défenderesse, elles ne justifiaient pas un licenciement aux yeux mêmes de celle-ci. Concernant l'une des remarques, la défenderesse n'était elle-même pas sans reproche, puisque qu'il est acquis qu'elle aurait dû rémunérer le demandeur pour le temps consacré à la formation obligatoire. Par ailleurs, rien n'indique que le demandeur ait connu des problèmes relationnels avec d'autres personnes, tandis que B._ a été la cause du départ du témoin P._.
3.4. En définitive, il n'était pas contraire au droit fédéral de retenir en fait que deux semaines après la bagarre du 29 septembre 2014, le demandeur avait demandé à la défenderesse de prendre des mesures de protection comme il ne se sentait plus capable de côtoyer son collègue, et que tout portait à croire que cette demande avait motivé la résiliation du contrat de travail, les motifs invoqués n'étant pas réels. L'intervalle entre la demande de mesures et le congé peut s'expliquer par le délai de protection de l'article 336c al. 1 let. b CO, et la défenderesse n'en tire du reste pas argument.
En droit, l'autorité précédente était fondée à considérer que la défenderesse, après la bagarre du 29 septembre 2014, ne pouvait plus se contenter de remettre à l'ordre les employés et aurait dû prendre des mesures concrètes pour protéger la personnalité du demandeur, respectivement que le congé donné dans les circonstances concrètes était abusif.
4.
4.1. Dans une argumentation subsidiaire, la défenderesse requiert que l'indemnité pour congé abusif, équivalant à deux mois de salaire, soit réduite à un mois de salaire. Les juges d'appel n'auraient pas suffisamment tenu compte de la relative brièveté des rapports de travail et de la faute concomitante du demandeur. Ils lui auraient reproché à tort un manque d'égards envers celui-ci, alors qu'elle avait vainement tenté la conciliation entre deux employés fautifs.
4.2. L'art. 336a al. 1 et 2 CO prévoit que la partie qui résilie abusivement le contrat doit verser à l'autre une indemnité que le juge fixe en fonction des circonstances, mais qui ne peut dépasser le montant correspondant à six mois de salaire du travailleur.
La fixation de l'indemnité ressortit au pouvoir d'appréciation du juge, que le Tribunal fédéral ne revoit qu'avec réserve (<ref-ruling> consid. 6a p. 255).
4.3. Dans le contexte évoqué ci-dessus (cf. notamment consid. 3.3 supra), les juges vaudois étaient fondés à reprocher à la défenderesse un manque d'égards. Pour le surplus, ils n'ont clairement pas abusé de leur pouvoir d'appréciation en fixant l'indemnité à deux mois de salaire.
4.4. La défenderesse ne formule pas d'autre grief, ce qui clôt la discussion.
5.
En définitive, le recours doit être rejeté.
Par conséquent, la défenderesse et recourante supportera les frais de la présente procédure (<ref-law>), fixés selon le tarif réduit de l'art. 65 al. 4 let. c LTF. Elle versera par ailleurs de pleins dépens au demandeur et intimé pour ses frais d'avocat (art. 68 al. 1 et 2 LTF).

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté.
2.
Les frais judiciaires, arrêtés à 500 fr., sont mis à la charge de la recourante.
3.
La recourante versera à l'intimé une indemnité de 2'500 fr. à titre de dépens.
4.
Le présent arrêt est communiqué aux mandataires des parties et à la Cour d'appel civile du Tribunal cantonal du canton de Vaud.
Lausanne, le 28 novembre 2018
Au nom de la Ire Cour de droit civil
du Tribunal fédéral suisse
La présidente: Kiss
La greffière: Monti