Eusebio, 70, was admitted to Lisbon's Luz hospital after a medical flight home. Doctors said he was in a stable condition.
"We will do a full review of the exams he did in Poland. He is well, calm... let's wait a bit and give more details later," Luz hospital clinical director Jose Roquette told reporters.
"Eusebio wanted to go home, said he felt well, had a good trip and that is a good sign."
Doctors at the hospital in the Polish city of Poznan conducted a coronarography on Sunday, but had ruled out a heart attack, blaming Eusebio's condition on the excitement related to Portugal's matches during the Euro 2012 tournament co-hosted by Poland and Ukraine.
Eusebio, Portugal's football ambassador, has been admitted to hospital four times since December. He has been suffering from hypertension and his doctors have said he must have regular examinations.
"He was released from the hospital at 10am after he slept well at night and was in stable condition," Polish hospital spokesman Stanislaw Rusek told Reuters.
Eusebio travelled with the national team to Poland and was in the stands for the quarter-final win over the Czech Republic, cheering alongside former Portugal captain Luis Figo.
Portugal will play Spain in the first semi-final later on Wednesday.
Roquette said Eusebio would not be able to watch the game from his hospital bed.
"In intensive care patients have no access to TV, so he won't have any chance to watch the match," he said.
"He will also probably not have the chance of listening to it on the radio but maybe someone will be kind enough to update him on the score."
Nicknamed the 'black panther', Eusebio grabbed international headlines during the 1966 World Cup in England when Portugal finished third. He also helped his Portuguese club side Benfica reach four European Cup finals in the 1960s.
Get the best features, fun and footballing frolics straight to your inbox every week.
Thank you for signing up to Four Four Two. You will receive a verification email shortly.
There was a problem. Please refresh the page and try again.