His first service at sea was on a merchantman, but he soon joined the Royal Navy on in 1755, just before the outbreak of the Seven Years' War. In the following five years he served on that ship then on HMS Prince Frederick and . He passed his examination for lieutenant in 1760 and was commissioned as the fifth lieutenant of on 16 January 1761, serving on her in the Channel Fleet and then in the Mediterranean. When peace came, this ship was paid off and Thompson transferred to the sloop, serving on her on the North American station from August 1763 to her paying-off in July 1768 in South Carolina. Thompson was back in North America as 's first lieutenant from May 1770, and there Commodore James Gambier promoted him to commander in February 1771, commanding the sloop and then appointed acting captain of. He took the later ship back to England in December 1771 and, though his acting captaincy was not confirmed by the admiralty, they did on 7 March 1772 promote him to full captain, commanding.
Thompson sailed to the West Indies commanding, the flagship of Vice-Admiral William Parry, and later moved to the frigate. He returned to England in 1774, and then went back to the West Indies in command of in early 1776. In April 1782, Thompson was present in the rear division at the Battle of the Saintes. Sir George Rodney's decisive victory over the French in the Caribbean. He sailed Alcide back to England at the end of the War.
Later service
In 1787 Thompson commanded at Portsmouth, and in 1790 . When the War of the First Coalition broke out in 1793 he was put in command of, as part of Sir John Jervis and Lieutenant-General Sir Charles Grey's expedition against France's West Indian possessions, participating in the capture of Martinique and Guadeloupe as a commodore. Also during this time in the Indies, Laforey and Thompson's feud reignited over Laforey conduct as commander-in-chief at the Leeward Islands, thus providing an excuse for First Lord of the Admiralty to recall Laforey but causing alarm amidst the other Admiralty commissioners. In the course of promotions through seniority, Thompson was promoted to rear-admiral of the blue on 12 April 1794, and sailed back to England the following year to be made vice admiral on 1 June 1795.
Mediterranean service
Thompson was next put in command of a detached squadron as part of the British blockade of Brest, before being transferred to, in which he served in the Mediterranean. In Britannia he acted as second in command at the battle of Cape St Vincent, disregarding Jervis's signal to tack to counter a Spanish attacking move and thus nearly losing the battle. This angered Jervis but he chose not to bring the issue into the public sphere, and so later that year Thompson's and Jervis's contribution to the battle were rewarded with a baronetcy and an earldom respectively whilst still on station. Continuing on the station for a time, Thompson's next disagreement with Jervis gave Jervis sufficient justification to insist that the Admiralty recall Thompson. After Thompson's death, Jervis wrote of him as a ‘gallant man, but the most timid officer’, and drew attention to his having ‘the manner of a rough seaman’ which Thompson cultivated by his habit of dressing casually in a sailor's frock and straw hat. On his recall, Thompson was then given a post in the Brest-blockade fleet which he held until 1798 despite failing health, his health eventually forcing him to strike his flag and return to England early in 1799, where he died later that year.
Political office
Thompson was elected MP for Monmouth in 1796 and held the seat until 1799 although he did not have a significant attendance in parliament.