שמגר נולד בשנת 1925 בדנציג (כיום בשטח פולין) בשם מאיר שטרנברג, בן לדינה ואלעזר שטרנברג, ציונים תומכי ז'בוטינסקי, שהיגרו לשם מהאימפריה הרוסית לאחר המהפכה הבולשביקית. עלה לארץ ישראל ב-1939, ולמד בגימנסיה בלפור בתל אביב. בהמשך למד היסטוריה ופילוסופיה באוניברסיטה העברית בירושלים ומשפטים בבית הספר המנדטורי למשפטים ואחר כך בלונדון. התגייס לפלמ"ח ושירת בפלוגה ד', מחלקת רמת הכובש/מעוז חיים. לאחר מכן הצטרף לאצ"ל והשתתף בפעולותיו ולימים היה בין גולי אצ"ל ולח"י שהובאו למחנות המעצר באפריקה. במהלך שהותו באפריקה המשיך בלימודי משפטים בהתכתבות, וכן השתתף באחד מניסיונות הבריחה. עם קום המדינה ב־1948 חזר לישראל.שמגר התגייס לצה"ל ובמהלך מלחמת העצמאות שירת בירושלים. לאחר המלחמה סיים את לימודיו במשפטים ובשנת 1950 שב לצבא לשרת בפרקליטות. בשנת 1955 נשא את גאולה נווה לאשה. בשנת 1956 מונה לסגן הפרקליט הצבאי הראשי וב-1961 מונה לתפקיד הפרקליט הצבאי הראשי. לכתב המינוי שלו לתפקיד צירף ראש הממשלה ושר הביטחון, דוד בן-גוריון, קריאה לעברת את שם משפחתו משטרנברג, ובעקבות כך שונה השם לשמגר. בתפקידו זה עיצב את התשתית המשפטית של הממשל הצבאי ביהודה ושומרון וחבל עזה לאחר מלחמת ששת הימים.
לאחר סיום שירותו בצה"ל מונה לתפקיד היועץ המשפטי לממשלה, שאותו מילא בין השנים 1968–1975. בתקופתו הונהגה מדיניות של צמצום בעיכוב הליכים פליליים, דבר שהביא לעומס של תיקים בבתי המשפט.
ב־1 ביולי 1975 מונה לשופט בבית המשפט העליון. ב־30 באפריל 1982 מונה כממלא מקום קבוע לנשיא בית המשפט העליון וב־28 בנובמבר 1983 מונה לנשיא בית המשפט העליון (והחליף את שם ממלא מקום הנשיא ל"משנה לנשיא"). ב־13 באוגוסט 1995, עם מלאת לו 70 שנים, פרש מכהונתו.
לאחר פרישתו עמד בראש מספר ועדות חקירה. ב־1996 הוענק לו פרס ישראל למפעל חיים.
כיום הוא משמש בין היתר כבורר בסכסוכים המופנים אליו מבתי המשפט או ישירות על ידי הצדדים.
בתפקידו כפצ"ר נקרא שמגר בשנת 1967, עם תום מלחמת ששת הימים, על ידי שר המשפטים יעקב שמשון שפירא, לעצב את התשתית המשפטית של הממשל הצבאי ביש"ע. את עמדתו המשפטית, שניסח במאמר "שמירת המשפט הבינלאומי בשטחים המוחזקים", יישם גם בתפקידו כיועץ המשפטי לממשלה. לדעתו, מדינת ישראל איננה מחויבת לאמנת ז'נבה הרביעית בירושלים וביש"ע משום ש"כל הרעיון של הגבלת הסמכויות של ממשל צבאי מבוסס על ההנחה שהיה קיים ריבון אשר גורש, וריבון זה היה ריבון חוקי". ביש"ע לא היה ריבון חוקי לאחר מלחמת העצמאות ועד מלחמת ששת הימים, משום שמדינת ישראל ומרבית אומות העולם לא הכירו בזכויות מצרים וירדן על השטחים שכבשו במלחמת העצמאות, שטחים שיועדו למדינה הערבית על פי תוכנית החלוקה של האו"ם, שהגיעה לסיומה הרשמי בהסכם על קווי שביתת נשק ולא בהסכמה על גבולות קבע.