למד בגימנסיה העברית 'תרבות' בווילנה והיה מראשי 'השומר הצעיר' בעיר. בשנת 1938 עלה ארצה. למד פילוסופיה והיסטוריה באוניברסיטה העברית וארגן חוגים קומוניסטים בקרב הסטודנטים. בשנת 1940 הצטרף לפק"פ, ובשנת 1943 נבחר למזכיר הסניף הירושלמי של המפלגה. במאבקים הפנימיים שהתנהלו בתנועה הקומוניסטית בשנות ה-40 תמך בצד הערבי ודבק במדיניות שהוכתבה ממוסקבה. התקדם במפלגה הקומוניסטית הפלשתינאית ונבחר למוסדות המרכזיים שלה. למרות התנגדותו לציונות היה חבר במועצת העם, חבר במועצת המדינה הזמנית ונמנה עם חותמי מגילת העצמאות. לאחר הקמתה של מק"י בשנת 1948 היה חבר בוועד המרכזי של המפלגה, חבר הלשכה המדינית וסגן המזכ"ל.
כיהן כחבר כנסת מטעם מק"י בכנסות הראשונה עד החמישית (בשנים 1959-1949, 1961). בשנת 1956 חשף יחד עם תופיק טובי את פרשת הטבח בכפר קאסם, למרות נסיונם של השלטונות להסתירה. בשנת 1965, כשהתפלגה מק"י, היה מראשי הפלג שהקים את רק”ח (הרשימה הקומוניסטית החדשה). למרות שבקרב חברי רק"ח היה רוב ערבי מוחלט, נבחר לתפקיד המזכ"ל בעקבות דרישה סובייטית שבראש המפלגה יעמוד יהודי. כיהן כחבר כנסת מטעם רק"ח בכנסות הששית עד השמינית (בשנים 1977-1965) והנהיג את הקו הפרו-ערבי של המפלגה. ב-15 באוקטובר 1967 נדקר ונפצע בידי חבר 'חרות' שניסה להתנקש בחייו, בשל התנגדותו לכיבוש ודרישתו להכרה בזכות העם הפלסטיני למדינה עצמאית לצדה של מדינת
ישראל.
בשנת 1976 יחד עם תופיק זיאד מילא תפקיד חשוב בקבלת
ההחלטה על קיום השביתה הכללית ב-30 במארס באותה שנה, שהובילה ליום האדמה
הראשון. בשנת 1977 היה ממייסדי חד"ש (החזית הדמוקרטית לשלום ולשוויון) ועמד בראש המפלגה. ב-8 ביוני 1982 הגיש בשם חד"ש הצעת אי-אמון נגד
ממשלת בגין בשל פתיחת מלחמת לבנון ב-6 ביוני. נציגי סיעתו היו התומכים היחידים בהצעה. ב-10 בינואר 1990 התפטר מהכנסת במסגרת הסכם רוטציה בחד"ש, לאחר כהונה בת 41 שנה. באותה שנה פינה את תפקיד מזכ"ל רק"ח והתמנה ליו"ר המפלגה (ששבה להיקרא מק"י). ב-6 ביוני 2003 נפטר כשהוא אחרון החותמים על מגילת
העצמאות שנותר בחיים.