כאשר התברר לסטלין שהמשא ומתן עם פינלנד אינו מוביל לתוצאות הרצויות, נקרא הרמטכ"ל הרוסי בוריס שפושניקוב להציג את התוכניות האופרטיביות למלחמה נגד פינלנד. הרמטכ"ל, שהיה קצין ותיק ומנוסה עוד מצבא הצאר, הציג תוכנית אופרטיבית שאותה הכינו מחלקות המבצעים והמודיעין במטכ"ל על בסיס כל מה שהיה ידוע באותה העת על פינלנד. התוכנית חייבה ריכוז מאמץ של הצבא האדום, הקמת מפקדת חזית והכנות אינטנסיביות. אולם סטלין ושר ההגנה קלימנט וורושילוב יחד עם שאר חברי הפיקוד העליון לא חשבו שפינלנד תהיה יריב קשה ולכן פסלו על הסף את התוכנית האופרטיבית של המטכ"ל, והטילו על מפקד הפיקוד של לנינגרד לטפל בעניין. מפקד הפיקוד קיריל מרצקוב, שהיה במעמד מפקד ארמייה מהדרגה השנייה, הכין תוכנית פשוטה שבדיוק לה ציפו הפינים: מאמץ עיקרי במצר הקרלי ועוד שלושה מאמצי משנה בין אגם לדוגה ועד לאוקיינוס הקרח הצפוני. עוד קודם לכן הכין מרצקוב את התשתיות לקראת המלחמה. בין היתר הוא שיפר והרחיב את מסילת הברזל לנינגרד-מורמנסק וכביש נלווה.
יחסי וסדר הכוחות.
יחסי הכוחות בין הצבא האדום לצבא פינלנד לא היו שווי משקל כלל:
ב-1939 מנתה אוכלוסיית ברית המועצות 186.5 מיליון תושבים. לרשות פיקוד לנינגרד לבדו עמדו 24 דיוויזיות בארבע מסגרות ארמיות, ובהן 450 אלף חיילים, 2,000 טנקים ו-1,000 מטוסי קרב והפצצה. לעומת זאת, אוכלוסייתה של פינלנד מנתה ב-1939 3.65 מיליון נפש. בעת שפרצה המלחמה, עמדו לרשות צבא פינלנד 9 דיוויזיות (כולן חיל-רגלים) ועוד כמה עשרות יחידות עצמאיות - כל יחידה בהיקף של פלוגה עד גדוד - שאורגנו בצוותי קרב. בסך הכל עמדו לרשות צבא פינלנד 127,800 חיילים סדירים, כ-100,000 חיילי מילואים ועוד כ-112 אלף חיילי "משמר המולדת" בסך הכל, נהנו הסובייטים (בפיקוד לנינגרד לבדו) מיתרון גדול של 3 ל-1 בכח אדם, 80 ל-1 בטנקים, 5 ל-1 בארטילריה ו-5.5 ל-1 במטוסים.
תפקוד הצבא האדום במלחמת החורף.
כאמור הצבא האדום היה גדול ומצויד לאין ערוך מהצבא הפיני וע"כ הדעה הרווחת בקרב הפיקוד העליון הסובייטי הייתה שהמלחמה עם פינלנד תסתיים בתוך כמה ימים או לכל המאוחר בתוך שבועיים - בפועל הדברים התנהלו בצורה שונה לחלוטין.
מלחמת החורף נחלקת לשלושה שלבים עיקריים:
שלב א - המתקפה של הצבא האדום - ב-30 בנובמבר בשעה 06:50, פתחו כוחות הצבא האדום במהלומה ארטילרית ואווירית על מטרות בפינלנד, ללא הכרזת מלחמה רשמית. כמה מאות אזרחים נפגעו כתוצאה מההפגזה האווירית, בעיקר בהלסינקי הבירה. כעבור 70 דקות, בשעה 08:00, הסתיימה ההפגזה, וארבע הארמיות הסובייטיות החלו את מתקפתן בצירי הדרכים העיקריות לאורך הגבול עם פינלנד, מהים הבלטי ועד לאוקיינוס הקרח הצפוני. המאמץ העיקרי של הכוחות הסובייטים היה במצר הקרלי, בקו מנרהיים. על אף נחיתותם המספרית הניכרת, התגלו הכוחות הפיניים כיריב נועז ומיומן, בהשתמשם בטקטיקת גרילה, ביחידות אלפיניסטיות מהירות העוטות מדי הסוואה לבנים, ומעל לכל - בידע שרכשו אודות לחימת חורף.
בשעות הבוקר פתחו קורפוסי הרובאים ה-50 וה-19 מהארמייה ה-7 הסובייטית בהתקפה לרוחב כל המצר הקרלי, בחזית שהשתרעה לאורך כ-70 קילומטרים, כשיעדם הסופי היה הבקעת קו מנרהיים, וחדירה לפנים הארץ. הכוח הסובייטי התוקף כלל 8 דיוויזיות רובאים, אחת נוספת בעתודת הארמייה, ושלוש בריגדות טנקים, בכח כולל של 120,000 חיילים, 1,000 טנקים, ו-600 קני ארטילריה. מולם נערכה ארמיית המצר הקרלי הפינית, שהורכבה מהקורפוסים ה-2 וה-3 (5 דיוויזיות רגלים). המגינים הפינים בגזרה זו סבלו מנחיתות מספרית גדולה, הן בכח אדם והן בציוד, אך הם הסתמכו על רצועת ההגנה של קו מנרהיים.
כבר עם תחילת המתקפה, נתקלו כוחות החלוץ הסובייטים בהתנגדות מהגייסות המחפים הפינים, משדות מוקשים רבים וממכשולים נגד טנקים, שעיכבו אותם באופן ניכר. דיוויזיה 70 הסובייטית מקרופוס 19 הצליחה אמנם להשיג את יעדה, ולכבוש את עיירת הגבול הפינית טריוקי (Terijoki) ב-1 בדצמבר 1939, אך שאר ההתקדמות של הארמייה הייתה איטית. מטות החטיבות איבדו מהר מאוד את השליטה והתקשורת על כוחותיהם הקדמיים, בשל בעיות ומחסור בציוד קשר, וכן בגלל היתקלותם החוזרת ונשנית בשדות מוקשים מחופים באש הכוחות הפינים הנסוגים, שניצלו היטב את המכשולים הטבעיים והמלאכותיים. בקרב החיילים והמפקדים החלה להיווצר 'פאניקת מוקשים', והבעיה הוחמרה כל כך, שבלנינגרד החלו לייצר בבהילות גלאי מוקשים. אמצעי נוסף שנקטו הכוחות הסובייטים כדי להתגבר על הבעיה היה לצרף יחידות של הנדסה קרבית לכוחות החלוץ, שתפקידן היה לנוע לפני הכוח העיקרי ולגלות את מכשולי האויב. הארמייה השמינית של הצבא האדום נועדה לתקוף צפונית לאגם לדוגה במטרה לאגף את קו מנרהיים מעורפו. הארמייה שכללה 5 דיוויזיות בדרג הראשון ודיוויזיה נוספת בעתודה, החלה במתקפה בגזרה ברוחב 300 ק"מ, על חמשת הצירים הקיימים. הכוחות הפינים באזור היו דלילים, והורכבו מצוותי קרב גדודיים שניהלו קרבות נסיגה והשהייה. ההתקדמות של הסובייטים הייתה איטית מההתחלה עקב מחסומים על הכבישים, מוקשים וגשרים שהושמדו בידי הפינים הנסוגים.
בגזרת סוּמה - כפר שהיה חלק מרצועת ההגנה העיקרית ושטח מפתח בדרך לוויפורי במערב קו מנרהיים - עשו הסובייטים ניסיון הבקעה. ההתקפה נתקלה במערך מבוצר לעומק שכלל 41 מוצבים ובהם מצדי בטון מצוידים במקלעים ובארטילריה. על אף ש-20 טנקים סובייטיים הצליחו ב-19 בדצמבר לחדור לעומק המערך הזה דרך פרצה באגפו המזרחי, לא הצליח החי"ר לחבור אליהם, והם ננטשו בשטח הפיני. ב-22 בדצמבר הסתיים גם הניסיון הזה, והכוח הסובייטי נאלץ לסגת לחזיתה של רצועת ההגנה העיקרית. בעקבות הכישלון הזה הופסקה למעשה המתקפה במאמץ העיקרי למשך כחודשיים והיא חודשה רק ב-11 בפברואר. גם בשאר הגזרות לא היו ביצועי הצבא האדום טובים יותר - נראה היה שהפינים הצליחו - מעבר לכל ההערכות והציפיות - לבלום את הצבא האדום האדיר.
שלב ב' - לוחמה סטטית והיערכות מחודשת להמשך הקרבות - לאחר עשרה ימים מתחילת המתקפה התברר לפיקוד העליון הסובייטי שפינלנד היא אויב קשוח. ההתקדמות בכל הגזרות נבלמה, לאחר שהצבא האדום ספג אבדות כבדות. יתר על כן, היות שהפיקוד הסובייטי העריך שהמלחמה תסתיים בתוך זמן קצר, החיילים לא היו מצוידים כראוי ללוחמת חורף ממושכת, והקור העז גבה מהם מחיר כבד אף יותר מאש החיילים הפינים. נוכח ההתפתחויות האלה החליט סטלין לבצע שידוד מערכות כולל. למפקד המאמץ העיקרי נגד קו מנרהיים מונה סמיון טימושנקו, מפקד פיקוד קייב ומפקד החזית האוקראינית במערכה על פולין הוא מונה למפקד החזית הצפון-מערבית - מפקדה חדשה שהוקמה במיוחד לניהול המלחמה נגד פינלנד. ז'דנוב, מזכיר המפלגה של לנינגרד, קיבל מעמד מיוחד של שר, והוטל עליו לסייע לטימושנקו ולרכז את כל המשאבים של לנינגרד (ושל שאר חלקי ברית המועצות) כדי שיעמדו לרשות הכוחות בחזית.
מפקד המבצע עד אז, מפקד פיקוד לנינגרד, מרצקוב, הודח מתפקידו ונשלח לפקד על ארמייה 7 שעליה הוטל המאמץ העיקרי. נוסף על כך בנה הצבא האדום שתי ארמיות חדשות שנועדו לסייע למאמץ של ארמייה 7: ארמייה 13 בפיקודו של קצין הארטילריה ולדימיר גרנדל, שעליה הוטל לתקוף ממזרח לארמייה 7 וממערב לאגם לדוגה, דהיינו להבקיע את חלקו המזרחי של קו מנרהיים, וארמיית העתודה בפיקודו של ראש מנהלת השריון, פבלוב.
במהלך ינואר ריכז טימושנקו 23 דיוויזיות חדשות בזירה (הכוחות הטובים ביותר שנבחרו משאר הפיקודים של ברית המועצות), ואלה תרגלו באופן אינטנסיבי שיתוף פעולה בין-זרועי ובין-חילי. עם הגעתן לחזית עלה מספר הדיוויזיות הסובייטיות המעורבות במלחמה ל-45.
במצר הקרלי - שם היה המאמץ העיקרי של הסובייטים - פעלו במסגרת הארמיות 7 ו-13 25 דיוויזיות, 8 בריגדות שריון, 17 חטיבות ארטילריה ובסך הכול 600 אלף חיילים, 3,173 תותחים (מהם 1,033 כבדים) וכ-2,000 טנקים. בכך השיגו הסובייטים עדיפות מוחצת על הפינים: 4:1 בחי"ר, 30:1 בארטילריה ועליונות מוחלטת בשריון ובמטוסים.