El 10 de enero de 1900, fue enviado el general británico Frederick Sleigh Roberts para sustituir a Buller como comandante en jefe. (Sin embargo, Buller continuó la lucha durante la guerra.) A comienzos de febrero, Roberts envió al comandante británico John Denton Pinkstone French al norte para socorrer la ciudad de Kimberley; el objetivo de French fue conseguido cuatro días después. Al mismo tiempo, Roberts emprendió una marcha hacia el noreste desde la Colonia de El Cabo hasta el Estado Libre de Orange. Atacado por el general bóer Piet Cronje el 27 de febrero, Roberts se defendió con éxito y obligó a aquél y a sus tropas a rendirse. El 13 de marzo, Roberts entró en Bloemfontein, capital del Estado Libre de Orange. Dos meses después, el 17 de mayo, fue socorrida la asediada Mafeking, que era defendida por las tropas al mando del británico Robert Baden-Powell. Roberts capturó Johannesburgo el 31 de mayo y Pretoria, capital del Transvaal, el 5 de junio. Debido a estas derrotas, el presidente Kruger huyó a Europa, y Roberts, creyendo que había ganado la guerra, regresó a Inglaterra en enero de 1901.