Willis voitti Melbournen kansainyhteisön kisoissa 2006 kultaa 1 500 metrillä ajalla 3.38,49. Ateenan maailmancupissa hän sijoittui samalla matkalla kolmanneksi ja Osakan MM-kilpailuissa 2007 kymmenenneksi. Pekingin olympialaisissa 2008 Willis sijoittui 1 500 metrillä alun perin kolmanneksi, mutta nousi hopealle Rashid Ramzin dopinghylkäyksen jälkeen. Willis juoksi ajan 3.34,16 ja voitti kolmanneksi sijoittuneen Mehdi Baalan viidellä sadasosasekunnilla. Myöhemmin samana syksynä Willis oli kolmas .