הצטרף ל'הגנה' בשנת 1939. היה חבר קיבוץ גבע בשנים 1941-1940. במלחמת העולם השנייה שירת כקצין בצבא הבריטי. השתתף בפעולות להצלת שארית הפליטה ובמשימות רכש באירופה בשנים 1946-1945. עבר השתלמות במחלקה המדינית של הסוכנות היהודית בשנת 1947. שירת כשליש של רמטכ”ל 'ההגנה' יעקב דורי בשנת 1947, ואחרי כן עבר לאגף המבצעים של 'ההגנה'. במלחמת העצמאות היה סגן מפקד גדוד בחטיבת 'אלכסנדרוני' ומפקד גדוד בחטיבת 'כרמלי', השתתף בקרבות בצפון, בין השאר בכיבוש נצרת. שימש ראש ענף במחלקת המבצעים במטכ”ל בשנת 1951. למד בבית-הספר למטה בצרפת בשנת 1951. עמד בראש צוות ההקמה של בית-הספר לפיקוד ומטה בשנים 1954-1952, והיה מפקדו הראשון בשנים 1956-1954. שימש ראש מטה פיקוד מרכז בשנת 1956, נספח צה”ל בארצות הברית וקנדה בשנים 1960-1957 ומפקד חטיבת 'גולני' בשנים 1961-1960. הצטרף לאגף המודיעין וכיהן כראש אג"ם בשנים 1972-1964, שבהן התחוללו מלחמת ששת הימים ומלחמת ההתשה. בתקופת כהונתו התקדם האגף וזכה למעמד בכיר בקהילית המודיעין. לאחר שיחרורו מצה"ל שימש כיועץ ראש הממשלה ללוחמה בטרור בשנים 1973-1972. במלחמת יום הכיפורים היה עוזר מיוחד לרמטכ”ל וניהל את המשא-ומתן להפרדת הכוחות עם מצרים. כיהן כחבר כנסת מטעם 'המערך' בכנסת השמינית (בשנים 1977-1974) והיה חבר בוועדה לביקורת המדינה. שימש שר התחבורה בממשלת גולדה מאיר ושר ההסברה בממשלת יצחק רבין. השתייך לאגף ה'יוני' במפלגה. גיבש עם ויקטור שם-טוב את 'נוסחת יריב-שם-טוב', הקוראת לניהול משא-ומתן עם הפלסטינים, ואשר לא התקבלה על דעת הממשלה. בפברואר 1975 התפטר מהממשלה. במאי 1977 התפטר מהכנסת והצטרף למפלגת ד"ש. מאוחר יותר שב למפלגת העבודה. הקים את המרכז למחקרים אסטרטגיים ע”ש יפה באוניברסיטת תל-אביב ועמד בראשו בשנים 1994-1977.