In December 1808 Campbell went to Portugal as brigadier-general commanding the 2nd Brigade of Guards. He was present at the Battle of the Douro in May 1809 and at the Battle of Talavera. At Talavera he was wounded in the face and had to return to the United Kingdom; on 1 February 1810 he received the thanks of Parliament for his part in the battle and on 25 July he was promoted to major-general. He returned to Portugal in April 1811 to resume command of his brigade, then commanded the 1st Division during 1812 at the siege of Ciudad Rodrigo, the battle of Salamanca and the siege of Burgos. On 3 December he was again thanked by Parliament, for his services at Salamanca. For Talavera and Salamanca he was awarded the Army Gold Medal with one clasp; on 2 October 1813 he was made third major of the 1st Foot Guards, and on 4 June 1814 he was promoted to lieutenant-general. He was made a Knight Commander of the Order of the Bath on 2 January 1815, colonel of the 88th Regiment of Foot in 1824, colonel of the 25th Regiment of Foot in 1831, and promoted to general in 1837.