1949 Soviet Top League
{{Short description|12th season of top-tier football league in Soviet Union}}
{{Infobox football league season
| season = 1949
| competition = Soviet Top League
| prevseason = 1948
| nextseason = 1950
}}
Following are the results of the 1949 Soviet Top League football championship.
Standings
{{#invoke:sports table|main|style=WDL
|res_col_header=QP
|sortable_table=y
|show_groups=y
|group_header=Republic
|winpoints=2
|team1=DYN|group_DYN={{flag|Russian SFSR}} |name_DYN=Dynamo Moscow
|team2=CDKA|group_CDKA={{flag|Russian SFSR}} |name_CDKA=CDKA Moscow
|team3=SPA|group_SPA={{flag|Russian SFSR}} |name_SPA=Spartak Moscow
|team4=TPM|group_TPM={{flag|Russian SFSR}} |name_TPM=Torpedo Moscow
|team5=ZEN|group_ZEN={{flag|Russian SFSR}} |name_ZEN=Zenit Leningrad
|team6=DTB|group_DTB={{flag|Georgian SSR}} |name_DTB=Dynamo Tbilisi
|team7=DKV|group_DKV={{flag|Ukrainian SSR}} |name_DKV=Dynamo Kiev
|team8=VVS|group_VVS={{flag|Russian SFSR}} |name_VVS=VVS Moscow
|team9=DLN|group_DLN={{flag|Russian SFSR}} |name_DLN=Dynamo Leningrad
|team10=KUY|group_KUY={{flag|Russian SFSR}} |name_KUY=Krylia Sovetov Kuybyshev
|team11=LKM|group_LKM={{flag|Russian SFSR}} |name_LKM=Lokomotiv Moscow
|team12=LKH|group_LKH={{flag|Ukrainian SSR}} |name_LKH=Lokomotiv Kharkov
|team13=TST|group_TST={{flag|Russian SFSR}} |name_TST=Torpedo Stalingrad
|team14=NEF|group_NEF={{flag|Azerbaijan SSR}} |name_NEF=Neftyanik Baku
|team15=DMI|group_DMI={{nowrap|{{flag|Byelorussian SSR}}}}|name_DMI=Dinamo Minsk
|team16=DYR|group_DYR={{flag|Armenian SSR}} |name_DYR=Dynamo Yerevan
|team17=DAU|group_DAU={{flag|Latvian SSR}} |name_DAU=Daugava Riga
|team18=SHA|group_SHA={{flag|Ukrainian SSR}} |name_SHA=Shakhtyor Stalino
|win_DYN=26|draw_DYN=5|loss_DYN=3|gf_DYN=104|ga_DYN=30
|win_CDKA=22|draw_CDKA=7|loss_CDKA=5|gf_CDKA=86|ga_CDKA=30
|win_SPA=21|draw_SPA=7|loss_SPA=6|gf_SPA=93|ga_SPA=43
|win_TPM=16|draw_TPM=10|loss_TPM=8|gf_TPM=64|ga_TPM=42
|win_ZEN=17|draw_ZEN=8|loss_ZEN=9|gf_ZEN=48|ga_ZEN=48
|win_DTB=15|draw_DTB=10|loss_DTB=9|gf_DTB=62|ga_DTB=45
|win_DKV=17|draw_DKV=6|loss_DKV=11|gf_DKV=48|ga_DKV=47
|win_VVS=13|draw_VVS=9|loss_VVS=12|gf_VVS=48|ga_VVS=42
|win_DLN=12|draw_DLN=10|loss_DLN=12|gf_DLN=53|ga_DLN=53
|win_KUY=10|draw_KUY=12|loss_KUY=12|gf_KUY=40|ga_KUY=61
|win_LKM=11|draw_LKM=8|loss_LKM=15|gf_LKM=59|ga_LKM=56
|win_LKH=10|draw_LKH=10|loss_LKH=14|gf_LKH=41|ga_LKH=51
|win_TST=8|draw_TST=10|loss_TST=16|gf_TST=36|ga_TST=52
|win_NEF=6|draw_NEF=12|loss_NEF=16|gf_NEF=26|ga_NEF=42
|win_DMI=8|draw_DMI=6|loss_DMI=20|gf_DMI=36|ga_DMI=73
|win_DYR=8|draw_DYR=5|loss_DYR=21|gf_DYR=36|ga_DYR=70
|win_DAU=7|draw_DAU=5|loss_DAU=22|gf_DAU=21|ga_DAU=64
|win_SHA=5|draw_SHA=8|loss_SHA=21|gf_SHA=21|ga_SHA=73
|col_CP=green1|text_CP=
|result1=CP
|col_P=green3|text_P=
|result2=P|result3=P
|update=complete|source=[https://www.rsssf.org/tablesu/ussrhist.html rsssf.com]
}}
Results
{{#invoke:sports results|main
|matches_style=FBR|solid_cell=grey
|team1=CDK|team2=DAU|team3=DYK|team4=DLE|team5=DMN
|team6=DYN|team7=DTB|team8=DYE|team9=KRY|team10=LKH
|team11=LOK|team12=NEF|team13=SHA|team14=SPA|team15=TOR
|team16=TST|team17=VVS|team18=ZEN
|name_DYN=Dynamo Moscow
|match_DYN_CDK=3–1
|match_DYN_SPA=5–4
|match_DYN_TOR=2–1
|match_DYN_ZEN=8–0
|match_DYN_DTB=4–1
|match_DYN_DYK=4–1
|match_DYN_VVS=1–0
|match_DYN_DLE=2–2
|match_DYN_KRY=5–0
|match_DYN_LOK=1–1
|match_DYN_LKH=3–0
|match_DYN_TST=1–1
|match_DYN_NEF=2–1
|match_DYN_DMN=2–0
|match_DYN_DYE=7–1
|match_DYN_DAU=6–0
|match_DYN_SHA=10–1
|name_CDK=CDKA Moscow
|match_CDK_DYN=2–1
|match_CDK_SPA=1–0
|match_CDK_TOR=2–2
|match_CDK_ZEN=1–1
|match_CDK_DTB=2–0
|match_CDK_DYK=2–3
|match_CDK_VVS=3–0
|match_CDK_DLE=2–0
|match_CDK_KRY=0–1
|match_CDK_LOK=8–0
|match_CDK_LKH=5–1
|match_CDK_TST=2–1
|match_CDK_NEF=4–0
|match_CDK_DMN=4–1
|match_CDK_DYE=0–0
|match_CDK_DAU=4–0
|match_CDK_SHA=4–0
|name_SPA=Spartak Moscow
|match_SPA_DYN=1–4
|match_SPA_CDK=1–2
|match_SPA_TOR=3–3
|match_SPA_ZEN=2–1
|match_SPA_DTB=0–1
|match_SPA_DYK=3–0
|match_SPA_VVS=1–0
|match_SPA_DLE=8–1
|match_SPA_KRY=5–0
|match_SPA_LOK=3–0
|match_SPA_LKH=2–2
|match_SPA_TST=8–2
|match_SPA_NEF=4–1
|match_SPA_DMN=2–1
|match_SPA_DYE=2–2
|match_SPA_DAU=6–1
|match_SPA_SHA=0–0
|name_TOR=Torpedo Moscow
|match_TOR_DYN=0–1
|match_TOR_CDK=2–4
|match_TOR_SPA=0–0
|match_TOR_ZEN=1–1
|match_TOR_DTB=2–2
|match_TOR_DYK=1–0
|match_TOR_VVS=0–2
|match_TOR_DLE=0–2
|match_TOR_KRY=6–1
|match_TOR_LOK=2–0
|match_TOR_LKH=3–0
|match_TOR_TST=1–1
|match_TOR_NEF=1–0
|match_TOR_DMN=2–2
|match_TOR_DYE=2–1
|match_TOR_DAU=2–0
|match_TOR_SHA=5–0
|name_ZEN=Zenit Leningrad
|match_ZEN_DYN=1–6
|match_ZEN_CDK=3–3
|match_ZEN_SPA=5–0
|match_ZEN_TOR=0–1
|match_ZEN_DTB=2–2
|match_ZEN_DYK=2–0
|match_ZEN_VVS=2–1
|match_ZEN_DLE=3–2
|match_ZEN_KRY=1–0
|match_ZEN_LOK=1–3
|match_ZEN_LKH=0–3
|match_ZEN_TST=1–0
|match_ZEN_NEF=3–0
|match_ZEN_DMN=3–0
|match_ZEN_DYE=2–0
|match_ZEN_DAU=1–0
|match_ZEN_SHA=2–0
|name_DTB=Dynamo Tbilisi
|match_DTB_DYN=0–1
|match_DTB_CDK=1–6
|match_DTB_SPA=2–3
|match_DTB_TOR=2–2
|match_DTB_ZEN=0–1
|match_DTB_DYK=6–1
|match_DTB_VVS=2–0
|match_DTB_DLE=1–1
|match_DTB_KRY=6–0
|match_DTB_LOK=1–0
|match_DTB_LKH=1–1
|match_DTB_TST=0–3
|match_DTB_NEF=0–0
|match_DTB_DMN=6–1
|match_DTB_DYE=2–1
|match_DTB_DAU=2–0
|match_DTB_SHA=5–0
|name_DYK=Dynamo Kyiv
|match_DYK_DYN=2–6
|match_DYK_CDK=0–2
|match_DYK_SPA=0–0
|match_DYK_TOR=2–2
|match_DYK_ZEN=1–0
|match_DYK_DTB=1–0
|match_DYK_VVS=0–4
|match_DYK_DLE=2–1
|match_DYK_KRY=1–1
|match_DYK_LOK=1–1
|match_DYK_LKH=4–3
|match_DYK_TST=1–0
|match_DYK_NEF=2–1
|match_DYK_DMN=4–0
|match_DYK_DYE=2–0
|match_DYK_DAU=1–0
|match_DYK_SHA=2–0
|name_VVS=VVS Moscow
|match_VVS_DYN=0–2
|match_VVS_CDK=1–1
|match_VVS_SPA=1–4
|match_VVS_TOR=4–3
|match_VVS_ZEN=2–2
|match_VVS_DTB=3–2
|match_VVS_DYK=1–2
|match_VVS_DLE=3–0
|match_VVS_KRY=1–0
|match_VVS_LOK=1–0
|match_VVS_LKH=0–0
|match_VVS_TST=3–1
|match_VVS_NEF=0–0
|match_VVS_DMN=3–1
|match_VVS_DYE=3–0
|match_VVS_DAU=5–0
|match_VVS_SHA=3–1
|name_DLE=Dynamo Leningrad
|match_DLE_DYN=1–0
|match_DLE_CDK=1–3
|match_DLE_SPA=1–2
|match_DLE_TOR=3–1
|match_DLE_ZEN=0–0
|match_DLE_DTB=0–0
|match_DLE_DYK=0–4
|match_DLE_VVS=1–1
|match_DLE_KRY=1–1
|match_DLE_LOK=3–2
|match_DLE_LKH=1–1
|match_DLE_TST=2–0
|match_DLE_NEF=2–1
|match_DLE_DMN=0–2
|match_DLE_DYE=2–4
|match_DLE_DAU=2–0
|match_DLE_SHA=5–0
|name_KRY=Krylia Sovetov Kuybyshev
|match_KRY_DYN=1–2
|match_KRY_CDK=1–0
|match_KRY_SPA=0–6
|match_KRY_TOR=0–1
|match_KRY_ZEN=2–2
|match_KRY_DTB=2–2
|match_KRY_DYK=2–2
|match_KRY_VVS=2–2
|match_KRY_DLE=1–2
|match_KRY_LOK=1–1
|match_KRY_LKH=2–0
|match_KRY_TST=0–0
|match_KRY_NEF=3–0
|match_KRY_DMN=2–0
|match_KRY_DYE=4–2
|match_KRY_DAU=3–2
|match_KRY_SHA=2–1
|name_LOK=Lokomotiv Moscow
|match_LOK_DYN=1–4
|match_LOK_CDK=1–1
|match_LOK_SPA=4–6
|match_LOK_TOR=2–1
|match_LOK_ZEN=6–1
|match_LOK_DTB=1–1
|match_LOK_DYK=0–3
|match_LOK_VVS=5–0
|match_LOK_DLE=1–3
|match_LOK_KRY=2–0
|match_LOK_LKH=5–0
|match_LOK_TST=4–1
|match_LOK_NEF=1–1
|match_LOK_DMN=6–0
|match_LOK_DYE=1–2
|match_LOK_DAU=2–0
|match_LOK_SHA=1–1
|name_LKH=Lokomotiv Kharkov
|match_LKH_DYN=2–1
|match_LKH_CDK=0–1
|match_LKH_SPA=0–0
|match_LKH_TOR=2–3
|match_LKH_ZEN=0–1
|match_LKH_DTB=0–1
|match_LKH_DYK=1–2
|match_LKH_VVS=0–0
|match_LKH_DLE=3–1
|match_LKH_KRY=0–0
|match_LKH_LOK=0–5
|match_LKH_TST=2–0
|match_LKH_NEF=1–1
|match_LKH_DMN=3–0
|match_LKH_DYE=2–0
|match_LKH_DAU=0–0
|match_LKH_SHA=3–0
|name_TST=Torpedo Stalingrad
|match_TST_DYN=0–0
|match_TST_CDK=3–1
|match_TST_SPA=0–2
|match_TST_TOR=1–2
|match_TST_ZEN=1–2
|match_TST_DTB=1–2
|match_TST_DYK=0–2
|match_TST_VVS=1–1
|match_TST_DLE=1–0
|match_TST_KRY=3–1
|match_TST_LOK=0–0
|match_TST_LKH=4–1
|match_TST_NEF=0–0
|match_TST_DMN=1–0
|match_TST_DYE=2–0
|match_TST_DAU=1–2
|match_TST_SHA=0–0
|name_NEF=Neftyanik Baku
|match_NEF_DYN=1–1
|match_NEF_CDK=1–2
|match_NEF_SPA=1–4
|match_NEF_TOR=1–1
|match_NEF_ZEN=0–0
|match_NEF_DTB=0–1
|match_NEF_DYK=0–1
|match_NEF_VVS=1–0
|match_NEF_DLE=1–1
|match_NEF_KRY=0–0
|match_NEF_LOK=2–0
|match_NEF_LKH=1–2
|match_NEF_TST=4–1
|match_NEF_DMN=3–0
|match_NEF_DYE=2–1
|match_NEF_DAU=0–1
|match_NEF_SHA=0–0
|name_DMN=Dinamo Minsk
|match_DMN_DYN=0–2
|match_DMN_CDK=0–0
|match_DMN_SPA=0–5
|match_DMN_TOR=1–4
|match_DMN_ZEN=2–0
|match_DMN_DTB=2–2
|match_DMN_DYK=0–0
|match_DMN_VVS=0–1
|match_DMN_DLE=2–2
|match_DMN_KRY=2–2
|match_DMN_LOK=3–0
|match_DMN_LKH=2–1
|match_DMN_TST=3–1
|match_DMN_NEF=2–1
|match_DMN_DYE=3–2
|match_DMN_DAU=1–2
|match_DMN_SHA=0–2
|name_DYE=Dynamo Yerevan
|match_DYE_DYN=3–4
|match_DYE_CDK=0–6
|match_DYE_SPA=1–2
|match_DYE_TOR=0–3
|match_DYE_ZEN=0–1
|match_DYE_DTB=1–2
|match_DYE_DYK=2–1
|match_DYE_VVS=2–1
|match_DYE_DLE=0–4
|match_DYE_KRY=1–1
|match_DYE_LOK=3–1
|match_DYE_LKH=1–3
|match_DYE_TST=1–1
|match_DYE_NEF=1–0
|match_DYE_DMN=0–2
|match_DYE_DAU=2–0
|match_DYE_SHA=1–0
|name_DAU=Daugava Riga
|match_DAU_DYN=0–2
|match_DAU_CDK=0–3
|match_DAU_SPA=1–3
|match_DAU_TOR=0–1
|match_DAU_ZEN=0–1
|match_DAU_DTB=1–3
|match_DAU_DYK=1–0
|match_DAU_VVS=1–0
|match_DAU_DLE=1–1
|match_DAU_KRY=1–2
|match_DAU_LOK=1–0
|match_DAU_LKH=0–3
|match_DAU_TST=1–1
|match_DAU_NEF=0–1
|match_DAU_DMN=3–2
|match_DAU_DYE=1–1
|match_DAU_SHA=1–1
|name_SHA=Shakhtyor Stalino
|match_SHA_DYN=0–1
|match_SHA_CDK=1–4
|match_SHA_SPA=0–1
|match_SHA_TOR=0–3
|match_SHA_ZEN=1–2
|match_SHA_DTB=2–3
|match_SHA_DYK=1–0
|match_SHA_VVS=1–1
|match_SHA_DLE=0–5
|match_SHA_KRY=1–2
|match_SHA_LOK=0–2
|match_SHA_LKH=1–1
|match_SHA_TST=2–3
|match_SHA_NEF=0–0
|match_SHA_DMN=2–1
|match_SHA_DYE=1–0
|match_SHA_DAU=1–0
|update=complete|source=
}}
Top scorers
;26 goals
- Nikita Simonyan (Spartak Moscow)
;23 goals
- Ivan Konov (Dynamo Moscow)
- Aleksandr Ponomarev (Torpedo Moscow)
;20 goals
- Konstantin Beskov (Dynamo Moscow)
;19 goals
- Andrei Zazroyev (Dinamo Tbilisi)
;18 goals
- Grigory Fedotov (CDKA Moscow)
;17 goals
- Vladimir Savdunin (Dynamo Moscow)
;16 goals
- Viktor Terentyev (Spartak Moscow)
;15 goals
- Aleksei Grinin (CDKA Moscow)
- Vasili Lotkov (Dynamo Leningrad)
- Aleksei Paramonov (Spartak Moscow)