Froome survives scare to hold onto yellow jersey