The circus folk leave. Vasek's parents - Mícha and Háta - arrive, with Kecal. Vašek tells them that he no longer wants to marry Mařenka, having learned her true nature from a beautiful, strange girl. They are horrified ("He does not want her - what has happened?"). Vašek runs off, and moments later Mařenka arrives with her parents. She has just learned of Jeník's deal with Kecal, and a lively ensemble ("No, no, I don't believe it") ensues. Matters are further complicated when Vašek returns, recognises Mařenka as his "strange girl", and says that he will happily marry her. In the sextet which follows ("Make your mind up, Mařenka"), Mařenka is urged to think things over. They all depart, leaving her alone.
In her aria ("Oh what grief"), Mařenka sings of her betrayal. When Jeník appears, she rebuffs him angrily, and declares that she will marry Vašek. Kecal arrives, and is amused by Jeník's attempts to pacify Mařenka, who orders her former lover to go. The villagers then enter, with both sets of parents, wanting to know Mařenka's decision ("What have you decided, Mařenka?"). As she confirms that she will marry Vašek, Jeník returns, and to great consternation addresses Mícha as "father". In a surprise identity revelation it emerges that Jeník is Mícha's elder son, by a former marriage - the "worthless good-for-nothing" earlier dismissed by Kecal - who had in fact been driven away by his jealous stepmother, Háta. As Mícha's son he is, by the terms of the contract, entitled to marry Mařenka; when this becomes clear, Mařenka understands his actions and embraces him. Offstage shouting interrupts the proceedings; it seems that a bear has escaped from the circus and is heading for the village. This creature appears, but is soon revealed to be Vašek in the bear's costume ("Don't be afraid!"). His antics convince his parents that he is unready for marriage, and he is marched away. Mícha then blesses the marriage between Mařenka and Jeník, and all ends in a celebratory chorus.