He was educated mainly in Aberdeen, at the Aberdeen Grammar School and the Marischal College, University of Aberdeen; but he studied in Rouen, France, and Stettin, Prussia, from 1853 to 1855. He was commissioned into the 60th Foot in 1856, when he was nineteen years old. Soon after, his regiment was sent to the Cape of Good Hope, and thence to India. He returned to England in 1858, having been promoted to the rank of Lieutenant. In 1861 he sold his commission and retired from the army. In 1862, Mackenzie won a handicap tournament in London in which he defeated Adolf Anderssen.
In 1863, during the middle of the American Civil War, he moved to the United States. In 1865 he came to New York, where he wrote on chess matters for Turf, Field, and Farm. He won the first prizes at the annual contests of the New York Chess Club in 1865, 1866, 1867, and 1868.
Mackenzie’s international successes came after a fifteen year period in the United States, from 1865 through 1880, when he amassed a record of thirteen straight first place finishes in tournaments, while winning six of seven matches, with only one drawn. His successes in the U.S. included first place at Cleveland 1871, Chicago 1874, and New York 1880, the second, third, and fifth American Chess Congresses, respectively.
Subsequently he played in many tournaments both at home and abroad. In 1878, he tied for 4-5th in Paris. In 1882, he tied for fourth in Vienna (Wilhelm Steinitz and Szymon Winawer won). In 1883, he tied for 5-7th in London (Johannes Zukertort won). In 1885, he took 4th place in Hereford (Joseph Henry Blackburne won), and took 7th in Hamburg 1885 (Isidor Gunsberg won). In 1886, he tied for 7-8th in London.
Finally, Captain Mackenzie capped the climax of his chess achievements by winning the first prize, ahead of Blackburne, Zukertort, Englisch, Weiss, Bardeleben, Tarrasch, and Paulsen, in the 5th German Championship at Frankfurt-on-the-Main 1887. He won the 5th Scottish Championship at Glasgow 1888. He came 2nd at Bradford 1888, and tied for 3rd-4th at Manchester 1890. Jackson Showalter replaced him as the United States Chess Champion in 1890.