Willis came in to the event as the third-fastest entrant in the field - the 28-year-old ran his fastest 1500m time of 3.31.79 in Monaco last month
Coming from behind over the final 300m last night, he positioned himself into the first five positions but in the home straight he lacked his usual sting and was unable to put in a sprint to hold a top placing.
Willis received medical treatment at the finish. It appeared that because of extreme dehydration he had an injured hamstring.
He was taken to the medical tent inside the stadium on a stretcher.
There was some jubilation from Willis' race, Eduar Villanueva giving Venezuela their first place in a 1500m final by finishing fifth in 3m 36.96s.
The first semi-final was won by American Matthew Centrowitz in 3m 46.66s.
Stuart Farquhar won a place in the final of the javelin throw on Saturday after a mighty effort in the difficult throwing conditions of 82.10m.
He fouled his second attempt and realising he was in the final passed the opportunity for a third attempt.
He was best of the B preliminary group. The A group was led by Cuba's Guillermo Martinez with 83.77m.