When the Second World War broke out, McKinnon was in England on an artillery training course. He joined the Second New Zealand Expeditionary Force and served with the 3rd New Zealand Division during the campaign in the Solomon Islands. He was initially commander of the 28th Heavy Anti-Aircraft Regiment but when his unit was disbanded in July 1942 he took over 29th Light Anti-Aircraft Regiment. With his regiment, he landed on the Treasury and Green Islands. When the division was demobilised in 1944, he returned to England to attend the Staff College at Camberley. After completing his staff course, he joined the 2nd New Zealand Division, at the time fighting in Italy with the Eighth Army, along with other artillery officers who had served in the Pacific. Arriving in Italy in February 1945, he was second-in-command of firstly 4th Field Regiment and then 6th Field Regiment.