Serbia, who last appeared in the finals in 2010, were eager to show their worth in their first game back at the showpiece event.
An early scare came from them after Aleksandr Mitrovic tried to get a head in on goal, but it was cleared off the line.
Costa got their first piece of action through a header from Sergio Gonzalez who missed the opportunity to put them ahead with a free header following a corner kick.
Serbia was the more adventurous side and a piece of combination play involving Sergej Milinkovic Savage who set-up Mitrovic on the edge of the box, but he shot poorly at Keylor Navas.
Former Chelsea defender Branislav Ivanovic broke out wide and played in a cross-field pass to pick Savage, but Navas stretched out his hand to snuff the danger.
The battle between Navas and Mitrovic continued five minutes from the break when a lob over the top found the latter who went toe-to-toe with Navas, who spared his blushes with a point-blank save.
Serbia finally broke the deadlock when Aleksandr Kolarov unleashed a scorching free-kick from 30-yards that gave Navas no chance on 56 minutes.
The European nation closed in on a second when Savage found space in the box, but wasted an inviting opportunity to put them further ahead following a dismal effort.
Soon, a cross-field ball on the right picked out Kolarov, who ventured into the box but Navas came to the rescue once again.
The end result left Serbia walking away victorious to get Group E off on a high ahead of their final two fixtures with Brazil and Switzerland.