Local elections were held in Portugal on 12 December 1993. The elections consisted of three separate elections in the 305 Portuguese municipalities, the election for the Municipal Chambers, another election for the Municipal Assembly and a last one for the lower-level Parish Assembly, whose winner is elected parish president. This last was held separately in the more than 4,200 parishes around the country.
The Socialist Party (PS) maintained, and also increased, their status as the largest local party. The party won 7 more cities compared with 1989 and, for the first time ever, polled above 40 percent of the votes in a nationwide election. The PS maintained control of big cities like Lisbon, here with a record 57 percent of the votes, Porto and Coimbra, and were also able to win two big cities in the Lisbon area from the PSD, Cascais and Sintra. Note for the very narrow defeat of the PS, under the candidacy of future Prime Minister and European Council President António Costa, in Loures.
The Social Democratic Party (PSD), although showing a slight recovery, saw the gap between it and the PS widen, but at the same time, managed to maintain its ground. The party polled badly in many big urban centers, just as it did four years prior, but was able to win some cities from the PS, like Pombal and Ponta Delgada. The elections happened as Cavaco Silva's government had already been in power for 8 years, and at the same time Portugal was exiting the early 1990s recession, which may have damaged, in some degree, the Social Democrats' prospects for this election.
The Democratic Unity Coalition (CDU) was able to hold on to their 1989 scores losing just one city and seven councillors. The coalition between the Communists and the Greens was able to hold on to their bastions of Beja, Évora and Almada. The coalition's vote share was also unchanged compared with 1989.
The People's Party (CDS–PP) was the big loser of the elections, continuing its decline in local politics. The party lost seven cities, achieving their worst results till that date, managing to win only 13 cities out of 305. The party lost some of their bastions, like Mirandela or Paredes, to the PS or the PSD. The party also achieved their worst share of vote till that time in a local election, 8.4 percent.
Turnout in these elections increased compared with the 1989 election, as 63.4 percent of the electorate cast a ballot, the best turnout showing since 1982.
Background Electoral system All 305 municipalities are allocated a certain number of councilors to elect corresponding to the number of registered voters in a given municipality. 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.Eleição dos titulares dos órgãos das autarquias locais. Diário da República (in Portuguese.) Retrieved 17 July 2025.
By-elections (1989–1993) During the normal four-year term of local governments, one municipal council by-election was held in the municipality of Monção on 9 December 1990, adding to this, thirty-five parishes also held a by-election for parish assemblies.
+City control in by-elections (1989–1993)Date Municipality Population Previous control New control9 December 1990Monção23,799Social Democratic Party (PSD)Social Democratic Party (PSD)
Parties The main political forces involved in the election were:
CDS – People's Party (CDS–PP)1, Unitary Democratic Coalition (CDU)1 Socialist Party (PS)1 Social Democratic Party (PSD)
1 The PS formed a coalitions with CDS, CDU and UDP in several municipalities.
Results
Municipal Councils National summary of votes and seats
! 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 ! rowspan="2" style="background-color:#E9E9E9" align=right|Candidacies ! colspan="2" style="background-color:#E9E9E9" align="center"|Councillors ! colspan="2" style="background-color:#E9E9E9" align="center"|Mayors |- style="background-color:#E9E9E9" ! style="background-color:#E9E9E9" align="center"|Total ! style="background-color:#E9E9E9" align="center"|± ! style="background-color:#E9E9E9" align="center"|Total ! style="background-color:#E9E9E9" align="center"|±
|1,950,133||36.06||3.7||296||795||67||126||10
|1,822,925||33.71||2.3||305||807||26||116||3
|689,928||12.76||0.0||300||246||6||49||1
|455,357||8.42||0.7||248||133||46||13||7 |- |style="width: 10px" bgcolor=#FF66FF align="center" | |align=left|PS / CDU / UDP / PSR |200,822||3.71||0.0||1||11||2||1||0 |- |style="width: 10px" bgcolor=#000080 align="center" | |align=left|National Solidarity |28,922||0.53||—||54||3||—||0||—
|23,408||0.43||—||14||2||—||0||—
|15,821||0.30||0.2||14||0||0||0||0 |- |style="width: 10px" bgcolor=#FF66FF align="center" | |align=left|Socialist / People's |11,482||0.21||0.2||3||7||9||0||3 |- |style="width: 10px" bgcolor=#FF66FF align="center" | |align=left|PS / CDU / UDP / PDA |10,221||0.19||—||1||4||—||0||— |- |style="width: 10px" bgcolor= align="center" | |align=left|Popular Democratic Union |8,185||0.15||0.2||20||0||4||0||1
|1,455||0.03||0.8||4||0||4||0||0
|1,386||0.03||0.2||1||1||0||0||0
|285||0.01||0.0||4||0||0||0||0
|269||0.00||0.1||1||0||1||0||0
|214||0.00||0.1||1||0||1||0||0 |- |style="width: 10px" bgcolor=#FF66FF align="center" | |align=left|PS / CDU |95||0.00||—||1||2||—||0||— |- |colspan=2 align=left style="background-color:#E9E9E9"|Total valid |width="65" align="right" style="background-color:#E9E9E9"|5,220,908 |width="40" align="right" style="background-color:#E9E9E9"|96.54 |width="40" align="right" style="background-color:#E9E9E9"|0.1 |width="40" align="right" style="background-color:#E9E9E9"|— |width="45" align="right" style="background-color:#E9E9E9"|2,011 |width="45" align="right" style="background-color:#E9E9E9"|14 |width="45" align="right" style="background-color:#E9E9E9"|305 |width="45" align="right" style="background-color:#E9E9E9"|0 |- |colspan=2|Blank ballots |102,635||1.90||0.1||colspan=6 rowspan=4| |- |colspan=2|Invalid ballots |84,576||1.56||0.1 |- |colspan=2 align=left style="background-color:#E9E9E9"|Total |width="65" align="right" style="background-color:#E9E9E9"|5,408,119 |width="40" align="right" style="background-color:#E9E9E9"|100.00 |width="40" align="right" style="background-color:#E9E9E9"| |- |colspan=2|Registered voters/turnout ||8,530,297||63.40||2.5 |- | colspan=11 align=left | Source:
Municipality map
City control The following table lists party control in all district capitals, highlighted in bold, as well as in municipalities above 100,000 inhabitants. Population estimates from the 1991 Census.
Municipality Population Previous control New control Almada 151,783 Unitary Democratic Coalition (CDU) Unitary Democratic Coalition (CDU) Amadora 181,774 Unitary Democratic Coalition (CDU) Unitary Democratic Coalition (CDU) Aveiro 66,444 CDS – People's Party (CDS–PP) CDS – People's Party (CDS–PP) Barcelos 111,733 Social Democratic Party (PSD) Social Democratic Party (PSD) Beja 35,827 Unitary Democratic Coalition (CDU) Unitary Democratic Coalition (CDU) Braga 141,256 Socialist Party (PS) Socialist Party (PS) Bragança 33,055 Socialist Party (PS) Socialist Party (PS) Cascais 153,294 Social Democratic Party (PSD) Socialist Party (PS) Castelo Branco 54,310 Social Democratic Party (PSD) Social Democratic Party (PSD) Coimbra 139,052 Socialist Party (PS) Socialist Party (PS) Évora 53,754 Unitary Democratic Coalition (CDU) Unitary Democratic Coalition (CDU) Faro 50,761 Socialist Party (PS) Socialist Party (PS) Funchal 115,403 Social Democratic Party (PSD) Social Democratic Party (PSD) Gondomar 143,178 Socialist Party (PS) Social Democratic Party (PSD) Guarda 38,765 Socialist Party (PS) Socialist Party (PS) Guimarães 157,589 Socialist Party (PS) Socialist Party (PS) Leiria 102,762 Social Democratic Party (PSD) Social Democratic Party (PSD) Lisbon (details) 663,394 PS / CDU / MDP/CDE PS / CDU / UDP / PSR Loures 322,158 Unitary Democratic Coalition (CDU) Unitary Democratic Coalition (CDU) Matosinhos 151,682 Socialist Party (PS) Socialist Party (PS) Oeiras 151,342 Social Democratic Party (PSD) Social Democratic Party (PSD) Ponta Delgada 61,989 PS / CDS–PP Social Democratic Party (PSD) Portalegre 26,111 Social Democratic Party (PSD) Social Democratic Party (PSD) Porto 302,472 Socialist Party (PS) Socialist Party (PS) Santarém 62,621 Socialist Party (PS) Socialist Party (PS) Santa Maria da Feira 135,964 Social Democratic Party (PSD) Social Democratic Party (PSD) Santo Tirso 102,593 Socialist Party (PS) Socialist Party (PS) Seixal 116,912 Unitary Democratic Coalition (CDU) Unitary Democratic Coalition (CDU) Setúbal 103,634 Socialist Party (PS) Socialist Party (PS) Sintra 260,951 PSD / CDS–PP Socialist Party (PS) Viana do Castelo 83,095 Social Democratic Party (PSD) Socialist Party (PS) Vila Franca de Xira 103,571 Unitary Democratic Coalition (CDU) Unitary Democratic Coalition (CDU) Vila Nova de Famalicão 114,338 Socialist Party (PS) Socialist Party (PS) Vila Nova de Gaia 248,565 Socialist Party (PS) Socialist Party (PS) Vila Real 46,300 Social Democratic Party (PSD) Social Democratic Party (PSD) Viseu 83,601 Social Democratic Party (PSD) Social Democratic Party (PSD)
Municipal Assemblies National summary of votes and seats
! 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 ! rowspan="2" style="background-color:#E9E9E9" align=right|Candidacies ! colspan="2" style="background-color:#E9E9E9" align="center"|Mandates |- style="background-color:#E9E9E9" ! style="background-color:#E9E9E9" align="center"|Total ! style="background-color:#E9E9E9" align="center"|±
|align=right|1,930,816 |align=right|35.70 |align=right|3.6 |align=right| |align=right|2,641 |align=right|196
|align=right|1,829,087 |align=right|33.82 |align=right|2.5 |align=right| |align=right|2,681 |align=right|99
|align=right|704,980 |align=right|13.04 |align=right|0.2 |align=right| |align=right|803 |align=right|45
|align=right|445,065 |align=right|8.23 |align=right|0.7 |align=right| |align=right|557 |align=right|141 |- |style="width: 10px" bgcolor=#FF66FF align="center" | |align=left|PS / CDU / UDP / PSR |align=right|194,501 |align=right|3.60 |align=right|0.2 |align=right| |align=right|32 |align=right|9 |- |style="width: 10px" bgcolor=#000080 align="center" | |align=left|National Solidarity |align=right|23,260 |align=right|0.43 |align=right|— |align=right| |align=right|16 |align=right|—
|align=right|22,653 |align=right|0.42 |align=right|— |align=right| |align=right|11 |align=right|—
|align=right|12,063 |align=right|0.22 |align=right|0.0 |align=right| |align=right|1 |align=right|1 |- |style="width: 10px" bgcolor=#FF66FF align="center" | |align=left|Socialist / People's |align=right|11,905 |align=right|0.22 |align=right|0.5 |align=right| |align=right|24 |align=right|21 |- |style="width: 10px" bgcolor= align="center" | |align=left|Popular Democratic Union |align=right|11,009 |align=right|0.20 |align=right|0.2 |align=right| |align=right|2 |align=right|12 |- |style="width: 10px" bgcolor=#FF66FF align="center" | |align=left|PS / CDU / UDP / PDA |align=right|9,958 |align=right| 0.18 |align=right|— |align=right| |align=right|11 |align=right|—
|align=right|9,733 |align=right|0.18 |align=right|— |align=right| |align=right|0 |align=right|—
|align=right|3,494 |align=right|0.06 |align=right| 0.0 |align=right| |align=right| 0 |align=right| 2