Roger Federer recovered from a set down to beat Swiss countryman Stanislas Wawrinka 2-6, 6-3, 6-2 on Friday and reach the Stockholm Open semifinals.