Craig came from a Scottish family whose father was a judge of the civil and military courts in the British fortress of Gibraltar. At the age of 15 in 1763 he was enrolled as an ensign in the 30th (Cambridgeshire) Regiment of Foot. Colonel Robert Boyd, the lieutenant governor of Gibraltar in 1770 endorsed his promotion to an aide-de-camp which allowed him to later take command of a company in the 47th (Lancashire) Regiment of Foot stationed in the American colonies.
After the outbreak of the War of Independence in 1775, Craig took part in the Battle of Bunker Hill, where he was badly wounded, but refused to leave his regiment, and participated in the defence of Quebec in 1776, where he met the American invaders at Trois-Rivières while commanding the advance guard that forced them back beyond the border. During 1777 he was wounded twice, once seriously, during engagements at Fort Ticonderoga, Hubbardton, and Freeman’s Farm. Major-General John Burgoyne, who expressed high regard for Craig as an officer, recommended him for the rank of a major in the 82nd Regiment of Foot (Prince of Wales's Volunteers) in recognition of his service. From 1778 to 1781 Craig served with the 82nd Regiment in Nova Scotia, at Penobscot, and later in North Carolina. Due to constant involvement in operations during the war, Craig usually led light infantry troops. His rapid promotion suggests that Craig possessed an unusual degree of initiative and resourcefulness.
After promotion to lieutenant-colonel in 1781, Craig became Lieutenant Governor of Guernsey in 1793 and then an adjutant general to the Duke of York in the 1794 Army of Netherlands, being promoted to major-general.
In 1794-1795, the Netherlands were overrun by the revolutionary armies of the new republic of France, and Stadtholder Prince William V of Orange became a refugee in England. A British force under General Sir James Craig set out to Cape Town to secure the colony against the French. The Battle of Muizenberg successfully wrested control from William V of Orange to Britain.
In 1795 he served with Vice-Admiral Viscount Keith and Major-General Alured Clarke in occupying the Cape Colony from the Dutch Republic where he became governor of the new possession, and remained in that posting until 1797, for which he received the Order of the Bath. In the same year Craig sailed to Madras, and saw combat in the Bengal region of India for which he was again promoted to lieutenant-general in January 1801. Craig returned to England to serve for three years as the commander of the Eastern District.
In 1805, despite poor health, he was appointed to lead the Anglo-Russian invasion of Naples, but after a brief occupation, the mission was aborted after the news of Austrian defeat at the Battle of Ulm.
Craig concurrently held the positions of Governor-General of Canada and lieutenant-governor of Lower Canada from 1807 to 1811. Craig considered measures such as creating English counties and replacing the legislative assembly with an appointed government as a means of increasing the power of English speakers in predominantly French Lower Canada. He also tried to encourage immigration from Britain and the United States in hopes of making the French a minority.
In 1809 he employed a former U.S. Army officer named John Henry to determine if the Federalist New England states desired seceding from the United States and returning to their former states as Crown colonies. The British did not pursue re-acquiring New England and, after Henry unsuccessfully sought to be rewarded for his efforts, Henry sold the correspondence to President James Madison for $50,000 and sailed for France. (See Henry letters.)