Portugal only needed to avoid defeat in order to finish top of Group A and secure an automatic qualifying spot for the tournament in Qatar next year.
Renato Sanches' early strike put the hosts in the lead, but Dusan Tadic levelled and Aleksandar Mitrovic headed in a 90th-minute winner to seal sensationally seal Serbia's World Cup spot.
Manchester City midfielder Silva pulled no punches with his verdict on Portugal's performance.
"[It was a] terrible game for Portugal," Silva told O Jogo. "We managed to score the goal early, but then we stopped playing. Words fail me. We have to do more than we did today.
"We have a play-off, where we'll give our best. At home, with 65,000 people we had to do better. I want to apologise because they came to see a game they shouldn't have seen.
"The plan was to try to win the game. To have the ball. Something that didn't happen in any moment of the game. That at home and with the quality of our players is unacceptable. We have to see what failed and try to improve from there on."
Joao Palhinha agreed with Silva's assessment of the team's negative performance, but insisted they are good enough to qualify for the World Cup.
"We are here to take responsibility," Palhinha told RTP. "We didn't play a good game, we just defended in the second half and Serbia ended up having happiness in the final minutes, but [qualification is] still within our reach.
"Serbia played a good game, but we had the capacity and level to be superior. We are very sad, the dressing room is on the wane for not having achieved the direct qualification, but we have to go chasing them in the next games, because we have more than value to be in the World Cup.
"Life is not a constant of victories, all people who are successful in life go through difficulties and this feeling has to give us more strength."