Quick answer
О is a full “o” only when stressed. Unstressed it sounds like an a, and further from the stress it fades to a neutral “uh”.
o
How to say it
Stressed: round your lips firmly, as in “more”. Unstressed: relax completely and let it become an a.
Why this matters for reading
If you read every о as an o, every Russian word comes out slightly wrong. Learn the stress and the vowels follow: the stressed syllable is loud, long and clear, everything else is short and grey.
The northern exception
In parts of northern Russia people do say every о as a full o — it is called о́канье and sounds old-fashioned or rural to Moscow ears. The standard is akanye.
Typical mistakes
молоко́ as “molokó”
“malakó”
Only the stressed о survives as an o.
Москва́ as “Moskva”
“Maskvá”
Same rule, in the country’s most famous word.
Check yourself
Which word contains О?