The 2025 Setúbal local election was held on 12 October 2025 to elect the members for Setúbal City Council, Setúbal Municipal Assembly and the city's 5 parish assemblies.
Incumbent Mayor André Martins, from the Unitary Democratic Coalition (CDU), ran for a second term, facing a tough challenge from Fernando José, from the Socialist Party, and former Mayor Maria das Dores Meira, who was elected as part of the CDU in the past and was supported in this election by the PSD and the CDS–PP, while Chega originally proposed former PSD MP Lina Lopes as the party's mayoral candidate. However, on 18 August 2025, the last date to submit lists to the election, Chega candidate Lina Lopes dropped out from the race. Following this, the party nominated António Cachaço as the new mayoral candidate.
Maria das Dores Meira was successful in returning to her old job, winning 30% of the votes, just narrowly ahead of the Socialist Party, which gathered almost 28% of the votes. Each won four councillors. Chega increased to 18% of the votes, while CDU was "crushed" and pushed to fourth place, with mayor André Martins gaining just 11% of the votes and electing only himself to the municipal council. Turnout nearly reached 52% of registered voters, the highest rate since 2001.
Background In the 2021 local election, André Martins, from the Unitary Democratic Coalition (CDU), was elected for the first time as Mayor of Setúbal, replacing outgoing Mayor Maria das Dores Meira, also from the CDU. The CDU got 34.4% of the votes and elected five seats to the city council, thus losing its absolute majority, beating the Socialist Party (PS) candidate Fernando José, who got 27.7% of the votes and four seats, while the Social Democratic Party (PSD) candidate Fernando Negrão got 16.6% of the votes and elected two seats.
Electoral system Each party or coalition must present a list of candidates. The winner of the most voted list for the municipal council is automatically elected mayor, similar to first-past-the-post (FPTP). The lists are closed and the seats in each municipality are apportioned according to the D'Hondt method. Unlike in national legislative elections, independent lists are allowed to run.
Parties and candidates Party/Coalition Politicalposition Candidate 2021 resultRef. Votes (%) Seats CDUUnitary Democratic Coalition Left-wingto far-left André Martins34.4% PSSocialist Party Center-left Fernando José 27.7% SET–V25Dores Meira – Setúbal Back Syncretic Maria das Dores Meira 18.3% CHEnough! Far-right António Cachaço 5.9% BE Left Bloc Left-wingto far-left Daniela Rodrigues 4.2% ILLiberal Initiative Center-rightto right-wing Flávio Lança 2.3% PANPeople Animals NatureSyncreticMariana Crespo 2.3%ADNNational Democratic AlternativeFar-rightCláudio Fonseca 0.5%LFREELeft-wingAndré Dias
Campaign period Party slogans Party or alliance Original slogan English translation Refs CDU « Gente de verdade. Continuar Setúbal. » "Real folk. Continue Setúbal." PS « Vamos Setúbal! » "Let's go Setubal!" SET–V25 « Setúbal de Volta » "Setúbal Back" CH « A limpeza começa em Setúbal » "The cleanup begins in Setúbal" BE « Setúbal pelas Pessoas » "Setúbal for the People" IL « Acelerar Setúbal » "Accelerate Setúbal"
Candidates' debates + 2025 Setúbal local election debates Date Organisers Moderator(s) CDU PS SET–V25 CH BE IL Refs 19 Sep 2025 RTP3 Luísa BastosPPPPPP 21 Sep 2025 SIC Notícias Diogo Teixeira PereiraPPPPPP
Opinion polling
Polling firm/Link Fieldwork date Sample sizeCDUPSSET–V25CHBEILPANLADNLead PSD CDS2025 local election12 Oct 202511.427.5 29.918.11.24.50.92.61.32.6 2.4 CESOP–UCP 12 Oct 2025 4,215 10–13 27–31 29–34 16–21 1–2 3–5 1 1–2 1 1–32–3 ICS/ISCTE/Pitagórica 12 Oct 2025 4,419 9.2–12.6 25.8–30.6 27.4–32.2 16.2–20.2 0.3–2.3 3.2–6.2 0.3–1.3 0.3–2.3 1.6Pitagórica9–14 Sep 202550015.022.5 30.121.61.23.70.21.00.24.5 7.62025 Legislative election18 May 20255.924.122.527.32.75.71.95.60.84.33.22024 EP election9 Jun 20248.532.621.911.65.99.61.64.61.03.710.72024 Legislative election10 Mar 20246.529.918.720.86.55.62.64.31.55.19.12022 Legislative election30 Jan 20228.744.618.01.29.06.25.52.01.40.43.426.62021 local election26 Sep 202134.427.716.61.75.94.22.32.30.54.96.7
Results Municipal Council
| colspan="11" align=center| |- ! rowspan="2" colspan=2 style="background-color:#E9E9E9" align=left|Parties ! rowspan="2" style="background-color:#E9E9E9" align=right|Votes ! rowspan="2" style="background-color:#E9E9E9" align=right|% ! rowspan="2" style="background-color:#E9E9E9" align=right|±pp swing ! colspan="2" style="background-color:#E9E9E9" align="center"|Councillors |- style="background-color:#E9E9E9" ! style="background-color:#E9E9E9" align="center"|Total ! style="background-color:#E9E9E9" align="center"|± |- |style="width: 9px" bgcolor=gray align="center" | |align=left|Maria das Dores Meira - SET–V25 |16,525||29.91||11.6||4||2
|15,187||27.49||0.2||4||0 |- |style="width: 9px" bgcolor=#202056 align="center" | |align=left|Chega |9,984||18.07||12.2||2||2
|6,316||11.43||23.0||1||4
|2,470||4.47||2.2||0||0
|1,424||2.58||||0||
|702||1.27||||0||
|649||1.17||3.0||0||0
|499||0.90||1.3||0||0 |- |colspan=2 width="330" align=left style="background-color:#E9E9E9"|Total valid |width="50" align="right" style="background-color:#E9E9E9"|53,756 |width="40" align="right" style="background-color:#E9E9E9"|97.29 |width="40" align="right" style="background-color:#E9E9E9"|1.0 |width="40" align="right" style="background-color:#E9E9E9"|11 |width="40" align="right" style="background-color:#E9E9E9"|0 |- |colspan=2|Blank ballots |906||1.64||0.8||colspan=3 rowspan=4| |- |colspan=2|Invalid ballots |591||1.07||0.2 |- |colspan=2 align=left style="background-color:#E9E9E9"|Total |width="50" align="right" style="background-color:#E9E9E9"|55,253 |width="40" align="right" style="background-color:#E9E9E9"|100.00 |width="40" align="right" style="background-color:#E9E9E9"| |- |colspan=2|Registered voters/turnout ||106,736||51.77||9.7 |- | colspan=11 align=left | Source:
Municipal Assembly
| colspan="11" align=center| |- ! rowspan="2" colspan=2 style="background-color:#E9E9E9" align=left|Parties ! rowspan="2" style="background-color:#E9E9E9" align=right|Votes ! rowspan="2" style="background-color:#E9E9E9" align=right|% ! rowspan="2" style="background-color:#E9E9E9" align=right|±pp swing ! colspan="2" style="background-color:#E9E9E9" align="center"|Seats |- style="background-color:#E9E9E9" ! style="background-color:#E9E9E9" align="center"|Total ! style="background-color:#E9E9E9" align="center"|± |- |style="width: 9px" bgcolor=gray align="center" | |align=left|Maria das Dores Meira - SET–V25 |14,714||26.62||8.9||10||4
|14,671||26.54||1.0||10||0 |- |style="width: 9px" bgcolor=#202056 align="center" | |align=left|Chega |10,788||19.52||13.1||7||5
|6,510||11.78||20.7||4||8
|2,762||5.00||2.5||1||0
|2,026||3.67||||1||
|853||1.54||3.6||0||1
|678||1.23||||0||
|658||1.19||1.8||0||0 |- |colspan=2 width="330" align=left style="background-color:#E9E9E9"|Total valid |width="50" align="right" style="background-color:#E9E9E9"|53,660 |width="40" align="right" style="background-color:#E9E9E9"|97.08 |width="40" align="right" style="background-color:#E9E9E9"|1.0 |width="40" align="right" style="background-color:#E9E9E9"|11 |width="40" align="right" style="background-color:#E9E9E9"|0 |- |colspan=2|Blank ballots |1,020||1.85||0.8||colspan=3 rowspan=4| |- |colspan=2|Invalid ballots |594||1.07||0.2 |- |colspan=2 align=left style="background-color:#E9E9E9"|Total |width="50" align="right" style="background-color:#E9E9E9"|55,274 |width="40" align="right" style="background-color:#E9E9E9"|100.00 |width="40" align="right" style="background-color:#E9E9E9"| |- |colspan=2|Registered voters/turnout ||106,736||51.79||9.7 |- | colspan=11 align=left | Source:
Parish Assemblies
|- class="unsortable" !rowspan=2|Parish!!%!!S!!%!!S!!%!!S!!%!!S!!%!!S !rowspan=2|TotalS |- class="unsortable" style="text-align:center;" !colspan=2 | PS !colspan=2 | SET–V25 !colspan=2 | CDU !colspan=2 | CH !colspan=2 | IL |- | style="text-align:left;" | Azeitão (São Lourenço e São Simão) | style="background:#FF66FF; color:white;"| 29.0 | 4 | 21.5 | 3 | 14.1 | 2 | 19.9 | 3 | 9.3 | 1 | 13 |- | style="text-align:left;" | Gâmbia – Pontes – Alto da Guerra | 23.9 | 3 | 18.2 | 3 | style="background:red; color:white;"| 31.9 | 5 | 16.0 | 2 | 4.7
| 13 |- | style="text-align:left;" | Sado | 20.8 | 2 | 18.5 | 2 | style="background:red; color:white;"| 35.7 | 3 | 18.0 | 2 | 1.8
| 9 |- | style="text-align:left;" | São Julião, Nossa Senhora da Anunciada e Santa Maria da Graça | style="background:#FF66FF; color:white;"| 30.0 | 7 | 27.7 | 6 | 12.7 | 2 | 15.6 | 3 |6.0 | 1 | 19 |- | style="text-align:left;" | São Sebastião | style="background:#FF66FF; color:white;"| 28.0 | 7 | 22.3 | 5 | 15.9 | 4 | 22.7 | 5 | 4.0
| 21 |- class="unsortable" style="background:#E9E9E9" | style="text-align:left;" | Total | style="background:#FF66FF; color:white;"| 28.2 | 23 | 23.4 | 19 | 16.7 | 16 | 19.2 | 15 | 5.6 | 2 | 75 |- | colspan=19 style="text-align:left;" | Source:
Notes
References
External links Interior Ministry election results page