Kevin Anderson stunned top seed Roger Federer, rallying from two sets down to beat the eight-time champ and advance to the semifinals at Wimbledon.