Джон начинал в резервном клубе «МЮ» в сезоне-1998/99. В январе 2000 года был отдан в аренду «Борнмуту», и дебютировал в этом клубе в матче против «Колчестера».
В сезоне-2000/01 он выступал за «Антверпен». В этом сезоне он стал привлекаться в молодежную сборную Ирландии. За взрослую сборную Джон дебютировал 15 августа 2001 года, в матче с хорватами. Дебют оказался неудачным, Джон заработал пенальти в собственные ворота на добавленных минутах матча, позволив хорватам сравнять счет – 2:2.
В начале сезона-2002/03 в «МЮ» перешел Рио Фердинанд, однако это не помешало к концу сезона О'Ши стать основным защитником клуба.
В следующем сезоне дела Джона складывались не очень удачно. И хотя он провел за «МЮ» 32 матча, но в целом защита действовала неуверенно. В сезоне-2004/05 Джон освоил для себя новые позиции левого защитника и центрального полузащитника, становясь таким образом универсальным игроком. Еще через год он вернулся к своей привычной роли защитника, и провел в сезоне среди полевых игроков самое большое количество матчей, не считая Рио Фердинанда.
В сезоне-2006/07, в победный для «Манчестера» год, Джон провел 49 матчей в составе команды. Однажды он был вынужден встать в ворота «МЮ», когда был удален вратарь манкунианцев, а команда к тому моменту использовала все замены, и он не сплоховал, отразив коварный удар Робби Кина в конце встречи. В марте 2007 года именно его удар позволил манкунианцам добиться важнейшей победы над «Ливерпулем», и открыть дорогу к чемпионскому титулу.