Toisessa buurisodassa Roberts johti ”intialaisten upseerien” ryhmää, joka taisteli vaikutusvallasta ”afrikkalaisten upseerien” kanssa. Toisen buurisodan alkuvaiheessa koettujen tappioiden jälkeen hänet kutsuttiin brittijoukkojen ylipäälliköksi joulukuussa 1899 ja hän saapui seuraavassa kuussa Kapkaupunkiin. Hän johti muun muassa helmikuussa 1900 piiritetyn Kimberleyn vapauttamista, minkä jälkeen hän saartoi kaupunkia piirittäneen buuriarmeijan. Roberts löi buurikenraali Piet Cronjén joukot Paardebergin taistelussa, valtasi 13. maaliskuuta Oranjen vapaavaltion pääkaupungin Bloemfonteinin, ja tarjosi armahdusta kaikille muille paitsi buurien johtajille. Hän luovutti ylipäällikkyyden Etelä-Afrikassa esikuntapäällikölleen Herbert Kitchenerille marraskuussa 1900.