כיוון שלא ניתן היה לנתק את הכוח המצרי על ידי התייצבות באל עריש, הוחלט שלא לבצע התקפת מצח על עיקר המערך המצרי בעזה. במקום זאת הוחלט לנתקו באזור רפיח, ממש על קו הגבול הבינלאומי עם מצרים. עם זאת, הדבר הקשה על צה"ל, אשר תקף מערך מצרי מעובה יותר. בנוסף, הצטמצמו האפשרויות לתמרן ולהפתיע. כזכור, בבסיס התוכנית המקורית, עמד הרצון שלא להתמודד עם המצרים בגזרת הרצועה. בכל זאת, רפיח נחשבה כנקודת התורפה במערך המצרי אשר ברצועת החוף, ובכל מקרה, הייתה זו הנקודה הנוחה לניתוקו. כן סייעה העובדה כי בקרבות השלב הראשון, נשלחו כוחות מצרים לחזק את המערכים בגזרות שהותקפו, על חשבון גזרת עזה.
חטיבת 'גולני' נועדה לתקוף את רפיח מצפון מזרח. תחילה היה עליה לנוע מערבה, מאורים וממבטחים, ובהמשך לתקוף את משלט בית הקברות יחד עם משלטים נוספים שבקרבתו. כיבושם של אלה נועד לפתוח את הדרך להמשך ההתקפה לחטיבה 8. זרוע אחרת של ההתקפה נועדה לכלול את חטיבת 'הראל', אליה צורף הגדוד התשיעי של חטיבת 'הנגב'. אלה נועדו לנוע מעוג'ה אל-חפיר ולתקוף את רפיח מדרום מזרח. יעדי אותו כוח היו צומת רפיח ומשלטים שבקרבתו, מדרום לעיירה. כיבוש זה יחסום את כביש רפיח-אל עריש. לאחר כיבוש משלט בית הקברות וצומת רפיח, נועד הכוח התוקף כולו לטהר את העיירה ואת מחנות הצבא שבקרבתה. יתר כוחות חטיבת 'הנגב' נועדו להוות עתודה. מועד ההתקפה נקבע ללילה שבין ה-3 ל-4 בינואר 1949.
מהלך המבצע בשלב השני.
התקפת 'גולני'.
משימת 'גולני' הוטלה על גדוד 12 של החטיבה, וזה הטיל להתקפה שתי פלוגות, בעוד פלוגה שלישית נותרה כעתודה. פלוגה אחת תקפה את משלט בית הקברות, וזה נכבש בקרב פנים אל פנים. בהמשך ערכו המצרים התקפות נגד כבדות על אותו משלט, ונעזרו בטנקים, בארטילריה ובמטוסים. אולם 'גולני' המשיכה להחזיק באותו משלט.
פלוגה נוספת ניסתה לכבוש את משלט 102. הפלוגה הגיעה אל יעדה לאחר חצות, בתום מסע מייגע. מחלקת החוד נתקלה באש וספגה אבדות עוד טרם שהספיקה לתקוף, והסיוע הארטילרי לא היה יעיל. לפיכך, נתנה פקודת נסיגה עוד בטרם עלתה הפלוגה על היעד. הפלוגה ערכה עוד שני ניסיונות לכבוש את 102, באחד מהם, אשר נערך לפנות בוקר, הסתייעה הפלוגה בכוח פלוגתי משוריין של גדוד 19. גם הניסיונות הנוספים נכשלו. בימים הבאים כבש גדוד 19 את מוצב 'הכרם', שמדרום לגזרה האמורה, וכמעט התחבר עם כוחות 'הראל' אשר תקפו מדרום (ר' להלן).
התקפת רפיח מדרום.
הזרוע השנייה של ההתקפה כללה תחילה את הגדוד הרביעי של 'הראל', אליה צורף הגדוד התשיעי של 'הנגב'. אלה התקדמו לאורך כביש עוג'ה-רפיח, העובר סמוך לגבול הבינלאומי, אך רובו מעברו המצרי של הגבול, ותקפו שישה מוצבים מצריים, החולשים על הכביש, שלושה מכל צד. ההתקפה הסתייעה בכך שהמוצבים היו מבודדים זה מזה, וניתן היה לתקוף כל אחד בנפרד. עד ללילה שבין ה-4 ל-5 בינואר הצליחו לכבוש ארבעה מבין אותם מוצבים: א' וב', כ-30 ק"מ צפונה לעוג'ה, ג' (שנמצא ריק) וד', כ-20 ק"מ בהמשך הכביש. במהלך ההתקדמות, בין מוצב ב' לג', הותקף הכוח על ידי מטוסים מצריים. מטוס אחד הופל וכמה מחיילי צה"ל נפגעו. בידי המצרים נותרו שני המוצבים החולשים על הצומת עצמה. ניסיון שנערך באותו לילה לכבשם, נהדף. בלילה הבא תקפו את אותם מוצבים שתי פלוגות של הגדוד החמישי של חטיבת 'הראל', ותוכנן כי חטיבה 8 תעבור בצומת לאחר כיבושם. עד שעה 02:00 הצליח הגדוד החמישי לכבוש את יעדיו, כאשר, בשל סופת חול, נאלצו הכוחות להילחם בכידונים וברימונים. בשל אותה סופה, התעכבה חטיבה 8, בלא שתגיעה על כך ידיעה לכוחות שבמוצבי הצומת. לפנות בוקר נשמע כוח שריון מתקרב מצפון מזרח, הכיוון ממנו הייתה צריכה להגיע חטיבה 8, אולם התברר כי המדובר בכוח מצרי. זה כלל טנקים, נושאות ברן, המצוידות גם בלהביורים וחי"ר בעצמה של כשתי פלוגות. חלק גדול מן הנשק של המגינים לא פעל בשל סופת החול, והכוח נסוג באופן בלתי מאורגן. בהמשך היום ניסתה חטיבה 8 לכבוש חזרה את מוצבי הצומת. להתקפה יצאו שלושה טנקים של גדוד 82 ושתי פלוגות חי"ר מוסע על זחל"מים של גדוד 89. שני זחל"מים נפגעו מאש נ"ט מצרית, וההתקפה נהדפה. התקפה נוספת נהדפה אף היא. תוכניות להתקפות נוספות בוטלו בשל סופת חול אשר השתוללה כל אותו יום, ה-6 בינואר.
בלילה שבין ה-6 ל-7 בינואר כבש הגדוד הרביעי של חטיבת 'הראל' שלושה מוצבים פלוגתיים מצריים, כשלושה ק"מ ממערב לצומת רפיח וכחמישה ק"מ ממערב לגבול הבינלאומי. חסימה זו עצרה מעבר תגבורות מצריות מכיוון אל עריש, ועמדה, בעזרת סיוע מסיבי של חיל התותחנים, בכל הניסיונות לעקרה. חסימה זו ניתקה בפועל את הכוחות המצריים בעזה מעורפם. ההתקפות המצריות נמשכו עוד שעות מספר לאחר כניסת הפסקת האש לתוקף.
הלחימה באוויר ובים.
הלחימה באוויר.
עם תחילת המבצע בהתקפת 'גולני', החל חיל האוויר לתקוף יעדים מצריים באל עריש, רפיח וחאן יוניס. אחת הסיבות לכך הייתה תמיכה במאמץ לנטוע במצרים את הרושם שיעדו העיקרי של צה"ל הוא התקפה על רצועת עזה. כן תקף חיל האוויר ב'כיס פאלוג'ה'. לעומת זאת, בשלב זה נמנע חיל האוויר מלתקוף בגזרת עוג'ה אל-חפיר, כדי לשמור על גורם ההפתעה.
ב-28 בדצמבר 1948 פגעו ספיטפיירים מצרים במטוס קל של חיל האוויר הישראלי שטס מעל עוג'ה אל-חפיר. המטוס נפל וטייסו, צבי זיבל, גיבור ישראל, נהרג.
במהלך המבצע נהנה חיל האוויר מעליונות אווירית, אם כי לא הייתה עליונות מוחלטת, שכן מטוסים מצריים תקפו לא אחת את כוחות צה"ל בעת הלחימה בדרום. המצרים הסתייעו בלחימתם באותו מבצע בשדות תעופה טקטיים, נוסף לבסיסם העיקרי באל עריש. כזה היה, למשל, שדה התעופה שהותקף בביר חמה. ואכן, נסיגת כוחות צה"ל מסיני עוררה מחדש את חיל האוויר המצרי.
טייסת הקרב של חיל האוויר פטרלה מעל זירות הלחימה השונות, והפילה מספר מטוסים מצריים ללא אבדות לעצמה. כן ליוותה הטייסת מטוסים שהיו במשימות הפצצה. אלה האחרונות בוצעו ללא אבדות לחיל האוויר. חיל האוויר ביצע בתקופת המבצע 243 גיחות. בגיחות אלה הוטלו 226 טון פצצות על 12 מטרות.
בכל זאת, כללית, השפעת חילות האוויר על מהלך הלחימה לא הייתה גדולה.
הלחימה בים.
בתוספת לתקיפות חיל האוויר ברצועת עזה, הפגיז חיל הים את עזה, וכן הטיל הסגר ימי, שיושם במלואו על חופי הרצועה. ב-27 בדצמבר 1948 הנחית חיל הים כוח חבלה בסירות גומי בחוף סיני שביצע פיצוץ במסילת הרכבת רפיח - אל עריש (מבצע התחלה). בבוקר ה-1 בינואר 1949 התקרבו שתי ספינות מלחמה מצריות לחופי תל אביב. הן ירו על העיר כ-30 פגזים מטווח של כחמישה או שישה ק"מ. כל הפגזים נפלו בים. ספינות חיל הים הישראלי יצאו לרדיפה אחרי הספינות המצריות ונוצר מגע כ-100 ק"מ מערבה לתל אביב. נערכו חילופי אש בלא שנגרם נזק, והמצרים ניתקו מגע.
סיום הקרבות.
ב-6 בינואר 1949 הודיעה מצרים על הסכמתה לשיחות על הפסקת אש, וזו נכנסה לתוקף למחרת, 7 בינואר בשעה 14:00. שעות אחדות קודם לכן, הבריטים שלחו מטוסי קרב שסיירו מעל כוחות צה"ל. מטוסי חיל האוויר וכוחות צה"ל על הקרקע לא זיהו אותם כבריטים, והפילו חמישה מהם. הבריטים הגיבו בהזרמת תגבורות לצבא הבריטי שחנה בעקבה. נשיא ארצות הברית ביקר הפעם בחריפות את הבריטים על טיסת המטוסים שלהם מעל אזורי הקרבות וגם בבריטניה נשמעה על כך ביקורת חמורה. המצרים התעודדו בשל עמדת הבריטים והודיעו שלא יתחילו במשא ומתן על שביתת נשק עד שייסוג צה"ל מאדמת מצרים. ואכן, גם בשלב השני של המבצע חדרו כוחות צה"ל מספר ק"מ מערבה מן הגבול הבינלאומי, וכעת ישראל נאלצה להסיר את החסימה ממערב לרפיח, ולהתייצב על הגבול המדיני. כך היא אבדה יתרון טקטי חשוב.
תוצאות המבצע ואחרית דבר.
ישראל איבדה במבצע כ-80 הרוגים (ללא מבצע 'חיסול', בו נפלו כ-90 חיילי צה"ל), כ-160 פצועים וכעשרה שבויים. אבדות המצרים בנפש היו 459 הרוגים, 521 פצועים ו-565 שבויים. אבדותיהם בציוד כללו: 16 טנקים, 18 שיריוניות, 10 נושאות ברן, 10 זחל"מים ושמונה מטוסים. עוד שישה מטוסים נפגעו. בידי צה"ל נפלו כשלל שלושה תותחי שישה ליטראות, ארבעה תותחי נ"ט, שלוש מרגמות כבדות, שש מרגמות שלושה אינץ', שש מכונות ירייה, מטוס ספיטפייר ו-140 כלי רכב.
מבצע חורב סיים למעשה את קרבות מלחמת העצמאות, ככל הקשור ללוחמת אש ותנועה (מבצע עובדה המאוחר יותר, התנהל כמעט ללא אש).
המבצע הסתיים אמנם מבלי שתושג מטרתו במלואה, שכן צבא מצרי נשאר ברצועת עזה וב'כיס פלוג'ה'. עם זאת נחשב המבצע כבעל הישגים גדולים. צה"ל הוכיח יכולת בתכנון ובהפעלת כוחות רבים בו זמנית. חלק גדול מהצבא המצרי הובס, והוא גורש מרוב עמדותיו בנגב.
מבחינה מדינית היה מבצע זה בעל חשיבות מכרעת. מצרים - החזקה במדינות ערב הסכימה בעקבות המבצע לפתוח במשא ומתן על שביתת נשק עם מדינת ישראל.
ההוגה הצבאי באזיל לידל הארט השתמש במבצע חורב כדוגמה לאופן שבו יש להפעיל כוח כיישום מודל האסטרטגיה של גישה עקיפה שפיתח.
הנצחה.
בשנת 1995 הוקם ליד מושב אשלים מצפור הקומנדו הצרפתי ובו אתר הנצחה וסיפור הקרב.
לרגלי תל ניצנה הוקמה אנדרטה לנופלים בקרבות בעוג'ה אל-חפיר. האנדרטה מורכבת מזחל"ם ולידו שלט עם שמות הנופלים וסיפור הקרב.
טרטרוס