Faits: A. Le 7 juin 2001, X._ SA, en tant que maître de l'ouvrage, et Y._ Sàrl, en tant qu'entrepreneur, ont conclu un contrat d'entreprise portant sur des travaux de marbrerie à effectuer dans les salles d'eau d'une villa. Le prix des travaux était devisé à 13'544 fr.10. Le contrat était soumis notamment aux règles de la norme SIA 118 (édition 1977/1991). L'exécution s'est révélée défectueuse. En août 2001, le maître a invité à plusieurs reprises l'entrepreneur à réparer les défauts. Le 16 octobre 2001, il l'a informé de son intention de faire appel à une entreprise spécialisée pour effectuer les travaux de réparation. Le 26 octobre 2001, il lui a écrit que, faute d'un avis contraire dans les cinq jours, il ferait procéder aux travaux par une entreprise tierce. Le 30 août 2002, le maître a envoyé à l'entrepreneur une facture de 42'231 fr.75. Ce montant correspond au coût de la réfection par des tiers (55'775 fr.75), diminué du prix de l'ouvrage selon devis (13'544 fr.). B. Par demande du 23 décembre 2002, X._ SA a ouvert action contre Y._ Sàrl en paiement de 42'231 fr.75, plus intérêts. La défenderesse a conclu au rejet de la demande. Par ailleurs, elle a déposé une demande reconventionnelle, tendant à ce que X._ SA soit condamnée à lui payer 13'544 fr.10, plus intérêts. Par jugement du 6 mai 2009, le Tribunal civil de l'arrondissement de Lausanne a rejeté la demande du maître et admis la demande reconventionnelle de l'entrepreneur. X._ SA a interjeté un recours cantonal, concluant à ce que l'entrepreneur soit condamné à lui payer 42'231 fr.75 avec intérêts et à ce que les conclusions reconventionnelles de l'entrepreneur soient rejetées. Par arrêt du 10 mars 2010, la Chambre des recours du Tribunal cantonal du canton de Vaud a rejeté le recours et confirmé le jugement de première instance. Elle a jugé tout d'abord que l'ouvrage était défectueux et que l'entrepreneur n'avait pas procédé à temps à la réparation. Elle a estimé toutefois que le coût de la réfection par des tiers, représentant plus du triple du prix contractuel de l'ouvrage, était excessif. Le maître n'ayant ni demandé la réduction de prix ni résolu le contrat, ses conclusions en paiement ne pouvaient être que rejetées. C. X._ SA (la recourante) interjette un recours en matière civile. Elle conclut principalement à ce que l'entrepreneur soit condamné à lui payer 42'231 fr.75, plus intérêts à 5% dès le 21 octobre 2002, et à ce que la demande reconventionnelle soit rejetée. A titre subsidiaire, elle demande uniquement le rejet des conclusions reconventionnelles. L'effet suspensif a été accordé par ordonnance du 24 juin 2010. Y._ Sàrl (l'intimée) conclut au rejet du recours.