Mike Johnson on Friday won re-election for the U.S. House speaker in a slim Republican majority, after swaying two out of the three members of his party who had joined Democrats to block his bid.