Willis competed at the 2010 Commonwealth Games, where he finished 4th in the 200-metre breaststroke, and in the 2011 World Championships, where he made the final for the same event and finished 8th. At the 2012 Summer Olympics in London, he competed in the men's 200-metre breaststroke, finishing in 3rd place overall in the heats and qualifying for the final where he finished in 8th place. He was one of the very few British swimmers to achieve a personal best at the 2012 Olympics.