Gaston Sangoy gave the hosts a deserved lead after 17 minutes and, although Mikel Labaka equalised six minutes into the second half, substitute Bilic’s fine strike 12 minutes from time settled matters.
The winner arrived moments after Labaka had been sent off for a bad foul on Bilic, with Jose Manuel Casado also receiving his marching orders three minutes from the end for a second bookable offence.
The victory moved Javier Clemente’s side to within five points of fourth-bottom Granada and 16th-spotted Villarreal ahead of their games tomorrow.
Despite their perilous position, Sporting started much the brighter of the teams and tested Rayo goalkeeper Joel after only four minutes, the 21-year-old pulling off a fine save to keep out Adrian Colunga’s right-footed blast.
Sangoy and Miguel De las Cuevas were both then off target with long-range efforts for Sporting.
The visitors’ first attempt at goal came just after the quarter hour through Piti, whose shot was comfortably caught by Sporting keeper Juan Pablo Colinas.
But, moments later, Sporting took the lead. Colunga’s corner was cleared by Diego Costa, but Sangoy was on hand to prod home from six yards.
Costa had a chance to equalise in the 27th minute but lashed wide from close range.
The visitors lost Emiliano Armenteros to injury in the 33rd minute, Andrija Delibasic coming on in his place.
Joel continued to be the busier goalkeeper as the first half wore on, brilliantly parrying Colunga’s close-range attempt.
He had a let-off in the first minute of the second half, though, when Colunga’s free-kick got the better of him but struck the bar.
And five minutes later the visitors were back on level terms, Labaka slotting into the bottom-right corner from six yards following Roberto Trashorras’ free-kick on the right.
Sporting responded well to the setback, Colunga swiftly setting up another chance for Sangoy but his header flew over the bar, with Oscar Trejo firing wide soon after.
Costa again failed to find the target when well placed in the 70th minute for Rayo, and it all started to unravel for the visitors six minutes later.
Labaka saw red for a tackle on Bilic, who had only entered the fray moments earlier in place of De las Cuevas, and from the resulting free-kick the substitute sent a superb right-footed shot into the top-left corner.
The goal forced the 10 men to push forward in the closing stages, but Andrija Delibasic directed his header wide after finding space.
Casado was sent off three minutes from time for a second bookable offence after fouling Ayoze.
Despite their numerical inferiority, Rayo mustered one late chance to equalise through Delibasic, but Colinas pulled off a fine save in stoppage time.