Mattia Pasini had led comfortably from pole until lap 10 of 23, when the Italian lost the front of his Aprilia at the chicane.
That left Faubel, Simone Corsi and Talmacsi fighting for the lead, but they were soon joined by Pol Espargaro and Pasini's team-mate Joan Olive.
16-year-old Espargaro later charged into the lead of the five man group, but as the closing stages began the young Spaniard was facing intense pressure from bitter team-mates Talmacsi and Faubel.
Faubel broke through to lead with two laps to go, but Talmacsi wasn't far behind and began the last lap just 0.2secs from his team-mate, with whom he clashed last time out at Misano. The Hungarian then dived successfully for the lead at the hairpin, but Faubel kept his cool and slipstreamed back ahead on the long run to the flag.
That means Hector has reduced the championship gap to Talmacsi to just five points, with four rounds to go, while future star Espargaro hung on for his first grand prix podium.
Race results – Estoril:
1. Faubel (Aprilia)
2. Talmacsi (Aprilia) +0.132secs
3. Espargaro (Aprilia) +0.235secs
4. Corsi (Aprilia) +1.001secs
5. Olive (Aprilia) +1.188secs
6. Bradl (Aprilia) +7.579secs
7. Koyama (KTM) +8.297secs
8. Pasini (Aprilia) +8.957secs
9. de Rosa (Aprilia) +8.984secs
10. Krummenacher (KTM) +14.052secs
12. Smith (Honda) +18.145secs
20. Webb (Honda) +1min 1.566secs