Local elections were held in Portugal on 16 December 1979. They were the 2nd local elections in Portugal since the 1976 Constitution introduced the concept of democratic local power. The elections took place just two weeks after the 1979 legislative election.

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,000 parishes around the country.

Despite the Socialist Party finished on the top of the results table, the big winner was the Democratic Alliance, winning altogether 47 percent of the votes and electing 195 mayors, as the parties that composed it, the Democratic and Social Center, the Social Democratic Party and the People's Monarchist Party, presented individual lists in several municipalities.

The left-wing United People Alliance dominated the election in the municipalities of the South of the country, gathering more than 60 percent of the votes.

Turnout in these elections increased compared with the 1976 election, as 71.7 percent of the electorate cast a ballot, the highest turnout recorded in a nationwide local election.

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 (1976–1979) During the normal three-year term of local governments, three municipal council by-elections were held: In the municipality of Mirandela on 10 September 1978; In the municipalities of Valença and Belmonte both on 29 April 1979, adding to this, thirty-three parishes also held a by-election for parish assemblies.

+City control in by-elections (1976–1979)Date Municipality Population Previous control New control10 September 1978Mirandela24,139Democratic and Social Center (CDS)Social Democratic Party (PSD)29 April 1979Belmonte6,522Socialist Party (PS)Socialist Party (PS)29 April 1979Valença12,850Socialist Party (PS)Democratic Union (UD)

Parties The main political forces involved in the election were:

Democratic Alliance (AD) (only in some municipalities) Democratic and Social Center (CDS) (only in some municipalities) Socialist Party (PS) Social Democratic Party (PSD) (only in some municipalities) United People Alliance (APU)

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"|±

|align=right| 1,380,134 |align=right| 27.67 |align=right|5.3 |align=right| 297 |align=right| 523 |align=right|168 |align=right| 60 |align=right|55 |- |style="width: 10px" bgcolor=#2A52BE align="center" | |align=left|Democratic Alliance |align=right| 1,272,058 |align=right| 25.50 |align=right| — |align=right| 138 |align=right| 436 |align=right| — |align=right| 73 |align=right| —

|align=right| 1,021,486 |align=right| 20.48 |align=right| 2.8 |align=right| 299 |align=right| 322 |align=right| 55 |align=right| 50 |align=right|13

|align=right| 733,384 |align=right| 14.70 |align=right| 9.6 |align=right| 156 |align=right| 480 |align=right|143 |align=right| 101 |align=right|14

|align=right| 344,902 |align=right| 6.92 |align=right| 9.7 |align=right| 103 |align=right| 165 |align=right|152 |align=right| 20 |align=right|16 |- |style="width: 10px" bgcolor= align="center" | |align=left|Popular Democratic Union |align=right| 64,355 |align=right| 1.29 |align=right| — |align=right| 96 |align=right| 3 |align=right| — |align=right| 0 |align=right| —

|align=right| 24,456 |align=right| 0.49 |align=right| 0.2 |align=right| 69 |align=right| 0 |align=right| 0 |align=right| 0 |align=right|0

|align=right| 6,616 |align=right| 0.13 |align=right| — |align=right| 9 |align=right| 2 |align=right| — |align=right| 0 |align=right| —

|align=right| 6,162 |align=right| 0.12 |align=right| 0.1 |align=right| 3 |align=right| 6 |align=right|3 |align=right| 1 |align=right|0

|align=right| 1,873 |align=right| 0.04 |align=right| — |align=right| 7 |align=right| 0 |align=right| — |align=right| 0 |align=right| —

|align=right| 273 |align=right| 0.01 |align=right| — |align=right| 2 |align=right| 0 |align=right| — |align=right| 0 |align=right| — |- |colspan=2 align=left style="background-color:#E9E9E9"|Total valid |width="65" align="right" style="background-color:#E9E9E9"|4,855,699 |width="40" align="right" style="background-color:#E9E9E9"|97.36 |width="45" align="right" style="background-color:#E9E9E9"|1.8 |width="40" align="right" style="background-color:#E9E9E9"|— |width="45" align="right" style="background-color:#E9E9E9"|1,937 |width="45" align="right" style="background-color:#E9E9E9"|31 |width="45" align="right" style="background-color:#E9E9E9"|305 |width="45" align="right" style="background-color:#E9E9E9"|1 |- |colspan=2|Blank ballots |51,584||1.03||1.1||colspan=6 rowspan=4| |- |colspan=2|Invalid ballots |80,451||1.61||0.6 |- |colspan=2 align=left style="background-color:#E9E9E9"|Total |width="65" align="right" style="background-color:#E9E9E9"|4,987,734 |width="40" align="right" style="background-color:#E9E9E9"|100.00 |width="40" align="right" style="background-color:#E9E9E9"| |- |colspan=2|Registered voters/turnout ||6,761,751||73.76||9.2 |- | colspan=10 align=left|In 1976, as Electoral Front United People. |- | colspan=10 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 1970 Census.

Municipality Population Previous control New control Almada 107,575 United People Alliance (APU) United People Alliance (APU) Amadora 111,929 Municipality created United People Alliance (APU) Aveiro 49,808 Democratic and Social Centre (CDS) Democratic and Social Centre (CDS) Beja 36,384 United People Alliance (APU) United People Alliance (APU) Braga 96,918 Socialist Party (PS) Socialist Party (PS) Bragança 33,070 Social Democratic Party (PSD) Social Democratic Party (PSD) Cascais 92,907 Socialist Party (PS) Democratic and Social Centre (CDS) Castelo Branco 55,195 Socialist Party (PS) Democratic Alliance (AD) Coimbra 110,553 Socialist Party (PS) Democratic Alliance (AD) Évora 47,244 United People Alliance (APU) United People Alliance (APU) Faro 30,973 Socialist Party (PS) Democratic Alliance (AD) Funchal 101,810 Social Democratic Party (PSD) Social Democratic Party (PSD) Gondomar 105,075 Socialist Party (PS) Democratic Alliance (AD) Guarda 39,741 Socialist Party (PS) Socialist Party (PS) Guimarães 122,719 Socialist Party (PS) Democratic Alliance (AD) Leiria 80,241 Social Democratic Party (PSD) Social Democratic Party (PSD) Lisbon 769,044 Socialist Party (PS) Democratic Alliance (AD) Loures 166,167 Socialist Party (PS) United People Alliance (APU) Matosinhos 109,225 Socialist Party (PS) Socialist Party (PS) Oeiras 180,194 Socialist Party (PS) Democratic Alliance (AD) Ponta Delgada 67,975 Social Democratic Party (PSD) Social Democratic Party (PSD) Portalegre 25,800 Socialist Party (PS) Democratic Alliance (AD) Porto 301,655 Socialist Party (PS) Democratic Alliance (AD) Santarém 56,440 Socialist Party (PS) Socialist Party (PS) Setúbal 65,230 Socialist Party (PS) United People Alliance (APU) Sintra 124,893 Socialist Party (PS) Democratic Alliance (AD) Viana do Castelo 70,455 Social Democratic Party (PSD) Democratic Alliance (AD) Vila Nova de Gaia 180,875 Socialist Party (PS) Democratic Alliance (AD) Vila Real 44,550 Social Democratic Party (PSD) Social Democratic Party (PSD) Viseu 73,010 Democratic and Social Centre (CDS) Democratic and Social Centre (CDS)

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,358,977 |align=right| 27.24 |align=right| 6.1 |align=right| |align=right| 2,748 |align=right| 1,047 |- |style="width: 10px" bgcolor=#2A52BE align="center" | |align=left|Democratic Alliance |align=right| 1,284,634 |align=right| 25.75 |align=right| — |align=right| |align=right| 2,186 |align=right| —

|align=right| 1,041,985 |align=right| 20.89 |align=right|2.8 |align=right| |align=right| 1,785 |align=right|1,111

|align=right| 754,318 |align=right| 15.12 |align=right|9.4 |align=right| |align=right| 2,256 |align=right|597

|align=right| 316,568 |align=right| 6.35 |align=right|10.1 |align=right| |align=right| 863 |align=right|185 |- |style="width: 10px" bgcolor= align="center" | |align=left|Popular Democratic Union |align=right| 68,254 |align=right| 1.37 |align=right| — |align=right| |align=right| 59 |align=right| —

|align=right| 13,490 |align=right| 0.27 |align=right| 0.2 |align=right| |align=right| 0 |align=right|0

|align=right| 5,514 |align=right| 0.11 |align=right| 0.0 |align=right| |align=right| 26 |align=right| 24

|align=right| 757 |align=right| 0.02 |align=right| — |align=right| |align=right| 3 |align=right| —

|align=right| 421 |align=right| 0.00 |align=right| 0.0 |align=right| |align=right| 0 |align=right|0 |- |colspan=2 align=left style="background-color:#E9E9E9"|Total valid |width="65" align="right" style="background-color:#E9E9E9"|4,844,918 |width="40" align="right" style="background-color:#E9E9E9"|97.13 |width="45" align="right" style="background-color:#E9E9E9"|1.9 |width="40" align="right" style="background-color:#E9E9E9"|— |width="45" align="right" style="background-color:#E9E9E9"|9,926 |width="45" align="right" style="background-color:#E9E9E9"|4,796 |- |colspan=2|Blank ballots |67,042||1.34||1.2||colspan=6 rowspan=4| |- |colspan=2|Invalid ballots |76,283||1.53||0.7 |- |colspan=2 align=left style="background-color:#E9E9E9"|Total |width="65" align="right" style="background-color:#E9E9E9"|4,988,243 |width="40" align="right" style="background-color:#E9E9E9"|100.00 |width="40" align="right" style="background-color:#E9E9E9"| |- |colspan=2|Registered voters/turnout ||6,761,751||73.77||9.2 |- | colspan=8 align=left|In 1976, as Electoral Front United People. |- | colspan=8 align=left | Source:

Parish 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