סמוך לשעה 19:00, שני מחבלים פלסטינים תושבי חברון עלו לרכבת הקלה בגוש דן.
המחבלים דקרו חייל שהיה ברכבת, הם חטפו את נשקו והחלו לירות לכל עבר.
לאחר מכן המחבלים ירדו בתחנת שדרות ירושלים שביפו, והמשיכו במסע הרצח וירו לעבר אזרחים ודקרו אזרחים נוספים, עד שמאבטחי הרכבת הצליחו לחסל מחבל אחד, ואזרח חמוש שהיה באיזור חיסל את המחבל השני.
בפיגוע נרצחו שבעה יהודים הי”ד. שישה מהם מותם נקבע במקום והשביעי מותו נקבע בבית החולים לאחר זמן. ועוד 15 נפצעו בדרגות פציעה שונות, הפצועים פונו לבתי החולים וולפסון בחולון ואיכילוב בתל אביב.
מבירור ראשוני עולה שבתוך הרכבת הם רצחו ארבעה אזרחים, ושאר הנרצחים היו ברחוב בשדרות ירושלים ובהמשך ברח’ עזה ורח’ יפת. כוחות משטרה ביצעו סריקות נרחבות באזור לאיתור חשודים נוספים.
חשוב לציין כי הפיגוע התרחש כ-40 דקות לפני תחילת המתקפה האיראנית השנייה על ישראל, מה שהוסיף למתיחות הביטחונית הגבוהה באותה עת.
המפכ”ל דני לוי ציין כי זהות המחבלים ידועה למשטרה, צה"ל אף כיתר את בית המחבלים בחברון.
השר לביטחון לאומי הורה על פריסה מיידית של 13 אלף מתנדבי כיתות כוננות ברחבי המדינה.
מחקירת פיגוע הירי ביפו עולה כי שני המחבלים יצאו מחברון וחצו את קו התפר באזור עוטף ירושלים. ובמערכת הביטחון הודיעו שיחקרו כיצד חדרו לשטח ישראל.
בצה״ל הוחלט בעקבות הפיגוע: לא תתאפשר כניסת פועלים פלסטינים לשטחי ישראל עד הודעה חדשה.
אחת הנרצחות בפיגוע היא אם שהייתה עם בנה הפעוט בעגלה, והאם נרצחה ברכבת, נוסעת אחרת אספה את התינוק לבית החולים בניידת.
לב קרייטמן, האזרח שירה במחבל בתל אביב לוחם ששירת בעזה: אני מחזיק נשק אישי בשל היותי משרת מילואים. ישבתי לשתות משהו פתאום שמעתי יריות רצתי לירות במחבל.